将现有项目推送到Github

266

我有一个存放项目源代码的文件夹。我该如何将这个项目推送到Github的代码仓库中?

我尝试了以下步骤:

  1. 在GitHub上创建了一个空仓库。
  2. 运行git-bash并输入git init,然后在项目根目录下出现了.git文件夹。
  3. 使用git add sourcesFolderName将某些文件添加到版本控制中。
  4. 使用git commit -m“ initial commit”提交前一步中添加的文件。
  5. 使用git remote add MyProject <url>指定远程仓库。
  6. 最后使用git push,但是没有将任何内容推送到远程repo...(没有授权失败)

那么我该如何将现有源代码推送到新创建的github repo中?


4
git push 的确切输出是什么? - 1615903
2
@user1615903 我确定我的步骤顺序有误。我认为我需要类似于 git clone 的东西。我不记得 git push 的输出,但我认为它并不重要。因为问题出在另一个地方。 - WelcomeTo
1
你执行了 git push MyProject master 吗? - Felix Kling
这篇博客文章可能会帮助任何想要完成此任务的人。所有步骤都简单明了地描述了。http://samranga.blogspot.com/2015/07/create-git-bitbucket-repository-from.html - Samitha Chathuranga
1
一个小建议,尝试使用SourceTree应用程序。它的用户界面非常好看。 - Snopzer
https://stackoverflow.com/questions/60147906/how-to-use-gihub-with-basic-terminal-commands-for-commit-and-push/60147907#60147907 - Mohammad Kamran Usmani
19个回答

412
git init
git add .
git commit -m "Initial commit"
git remote add origin <project url>
git push -f origin master

-f选项在git push命令中强制推送。如果您不使用它,将会看到如下错误:

To git@github.com:roseperrone/project.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:roseperrone/project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first merge the remote changes (e.g.,
hint: 'git pull') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

5
这解决了我的问题,但我无法执行第四条命令 git remote add origin <project url>,显示“命令语法不正确”。我忽略了它,结果命令成功运行。 - Khalil Khalaf
4
顺便提一下,如果您不想使用GitHub网站,可以在第三步后添加以下内容:curl -u 'USER' https://api.github.com/user/repos -d '{"name":"REPO"}',将USER替换为您的用户名,REPO替换为要创建的存储库的名称。 - MD XF
1
此外,我认为你不能再只使用 git add . 命令了,你应该改为使用 cat "# reponamehere" >README.md 命令,然后再使用 git add README.md 命令。这是 GitHub 文档中推荐的做法。 - MD XF
3
我认为-f标志会强制删除远程历史记录?这似乎是一个危险的操作符。 - van abel
未来请注意,Github现在默认使用“main”而不是“master”。 - undefined

124

简单易懂的说法

我的答案并没有不同,但我会添加更多信息,因为新手可以从填补信息的空白中受益。

在您在github上创建仓库之后,他们会提供说明。您可以按照这些说明操作。但是,以下是一些额外的提示,因为我知道开始使用git有多么令人沮丧。

假设您已经在本地启动了项目。无论您拥有多少内容都没有关系。但让我们假装您有一个php项目。假设您有index.php、contact.php和一个包含图像、css和字体的资产文件夹。您可以这样做(很容易),但有很多选择:

选项1

登录您的github帐户并创建存储库。

enter image description here

如果单击“在桌面中克隆”按钮(屏幕右侧),则可以在需要的位置将其复制下来。

enter image description here

您可以(或者其他方法)将现有项目的内容复制到新的存储库中。使用Github应用程序,您可以使用其GUI从那里提交,这意味着您只需在应用程序中单击按钮即可。当然,您需要为提交输入备注。
选项2:
- 在github上创建您的存储库。 - 在计算机上,使用终端进入您的目录。使用Linux命令行,您可以进入该目录。从这里,运行以下命令以“连接”现有项目与您在github上的存储库(假设您在github上创建了存储库并且它当前为空)。
首先执行此操作以初始化git(版本控制)。
git init

然后,按照以下步骤将所有文件添加到“监视”列表中。如果您有不想被监视的文件,则需要添加一个.gitignore文件,但为了简单起见,只需使用此示例进行学习。

git add .

然后你需要提交并在""之间添加注释,如“第一次提交”等。
 git commit -m "Initial Commit"

现在,这里是您添加现有存储库的位置。
git remote add github <project url>

但是不要字面上输入<project url>,而是输入你自己的项目URL。如何获取?前往github上你的repo所在链接,然后复制链接。以我的情况为例,我的其中一个repo是https://github.com/JGallardo/urbanhistorical,因此我执行这个命令的结果url只需在其后添加.git即可。因此,在这里它将是:

git remote add github https://github.com/JGallardo/urbanhistorical.git

通过执行测试来验证它是否有效

git remote -v

你应该查看你的仓库链接到了什么。

enter image description here

然后你可以将你的更改推送到Github。
git push github master

或者

git push origin master

如果您仍然遇到错误,可以使用-f来强制执行。但是,如果您正在团队环境中工作,请小心不要强制执行,否则可能会造成更多问题。
git push -f origin master

4
你的解释是最好的。针对其他人看到这篇文章的情况:我先在 GitHub 创建了我的代码库,所以它不允许我进行推送。我需要运行以下命令:> github pull <项目URL>,然后再使用 github push 进行推送。之后,一切都正常了。 - philologon
1
非常感谢您!在其他选项都失败后,选项1拯救了我的生命! :D - Sara Inés Calderón
2
很好的解释!不过我会加上以下几行代码:git remote add origin <project url> 然后再输入 git push -f origin master。如果没有 -f,就会出现错误。 - Javiar Sandra
1
请在最后一个命令中加上 -f 选项,这样你的答案才是最佳的。 - Jacobo Koenig
1
真的帮了大忙!我不小心在 Github 仓库中初始化了 README,结果它就无法工作。然后我又用一个空的仓库重新初始化,这次就成功了。 - Verena Haunschmid
对我来说有效,而严格遵循官方GitHub文档却没有。悲伤但是真实的。谢谢! - Hrvoje

42

当推送时,您需要指定哪个分支哪个远程库

➤ git init ./
➤ git add Readme.md
➤ git commit -m "Initial Commit"
➤ git remote add github <project url>
➤ git push github master

将按预期工作。

您可以通过以下方法默认设置:

➤ git branch -u github/master master

这将允许您从主分支(master)执行git push而无需指定远程或分支。


1
没错。你也可以跳过“/master”这部分,因为它是多余的。 - Gabriele Petronella
1
"git add Readme.md" 不正确。如果已经存在,无需添加。如果不存在,则命令失败。无论如何,这都是不正确的。 - Mitch
1
@Mitch 这不是一个秘密的神奇咒语,它不会突然让你的电脑做你想要的事情。这只是一个示例,给人们一个思路,他们应该做什么。我希望人们能够理解他们所输入到计算机中的命令。 - brice

9
如果您使用的是Mac(这可能在PC上也适用),那么有一个非常简单的方法来完成这个过程。奇怪的是,我曾经四处寻找这个简单的过程,但从未找到过。
  • 在Github上不要做任何事情(除了拥有一个账户,并且没有用完所有可用的存储库)。
  • 下载GitHub for Mac并安装。完成帐户设置等步骤。不要为现有项目创建任何存储库。
  • 在repositories中添加新的本地存储库。
  • 选择现有文件夹。它会询问是否要这样做,请选择是。
  • 完成后,您将看到所有文件的列表。提交它们。
  • 转到Repositories并发布(如果您正确设置了帐户,则会为您创建新的Github存储库)。
  • 转到Repositories并推送(您将看到"nothing to push",或者它将把您的文件/更改推送到新创建的自动存储库)。
    • 好奇为什么您找不到其他地方的这个简单过程。
我知道不建议将项目文件夹用作存储库文件夹。我总是这样做,它总是有效的,使之变得简单,并且我从来没有遇到过任何问题。

我认为如果GitHub应用程序允许用户以这种方式操作,那么这肯定是可以的。 - johnnieb

8

总之;

git init
git status
git add "*"
git commit -m "Comment you want"
git remote add origin  https://link
git push  -u origin master

我想和你分享一个资源,让你更轻松地学习Git。 https://try.github.io/levels/1/challenges/1

8

自从2005年问世以来,Git一直是版本控制系统的首选。约87%的开发人员使用Git作为他们的版本控制系统。

但如果您有一个已经存在的项目,并且想要将其推送到远程服务器的Git中,请按照以下步骤操作:

  1. 进入您的项目目录的终端

  2. 使用 git init 初始化您的项目git

  3. 创建一个 .gitignore 文件,它实际上是一个告诉Git在项目中忽略哪些文件或文件夹的文本文件。

  4. 使用 git add . 将您的文件加入暂存区

  5. 使用适当的提交消息将更改提交到您的本地仓库:git commit -m"我的第一次提交"

  6. 在此步骤中,您只需要在GitHub或Bitbucket等分布式版本控制系统之一中创建一个仓库

  7. 使用以下Git命令将本地仓库与远程仓库链接起来:git remote add <your-remote-name> <your-remote-url>

因此,如果您的GitHub仓库网址为https://github.com/your-github-username/new-repository.git,则Git命令如下:

git remote add origin https://github.com/<your-github-username>/new-repository.git
  1. 将你的代码推送到远程GitHub仓库

    git push origin master

注意: git push命令需要两个参数: 远程仓库的名称(origin) 和要推送到的分支(这里master是每个仓库默认的分支)。

请参考这篇博客获取详细信息。


5
截至2019年7月29日,Github在创建存储库时向用户提供了完成此任务的说明,并提供了几个选项:
使用命令行创建新存储库
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/user/repo.git
git push -u origin master

从命令行推送现有的代码库

git remote add origin https://github.com/user/repo.git
git push -u origin master

从另一个存储库导入代码

按下 import(导入) 按钮以启动该过程。

对于视觉学习者:

在这里输入图片描述


5

我将遵循Rose P.先前的评论。我花了很长时间才找到解决方法,所以我希望重新发布(希望用通俗易懂的语言)我的解决方案......

步骤1:在Github.com上创建您的新仓库(如果已有,则跳过此步骤)

步骤2:关闭XCode...不需要

步骤3:打开一个新的终端窗口(是的,您必须使用终端...我尝试了所有其他方法...都没有效果)

步骤4:使用命令cd查找到您项目的文件夹位置(您想要添加到现有或新存储库的项目)

步骤5:输入git init,你会得到像这样的东西:Reinitialized existing Git repository in /{current directory}

步骤6:输入git add .,此步骤后不会发生任何事情,但请键入并继续下一步。

步骤7:输入git commit -m“Initial commit” ,你会得到以下内容:# On branch master nothing to commit, working directory clean。

或者

一些关于配置的解释,然后是已更改的文件列表。

步骤8:输入git remote add origin {project url},项目网址可以在Github.com中找到。这是HTTPS克隆URL...您应该能够只需复制并粘贴到终端窗口即可。如果系统告诉您原点已经存在,请创建不同的名称或使用您的项目名称(其他名称)

步骤9:转到Mac上的GitHub应用程序,单击“同步分支”按钮(即使没有未决更改)。我认为它需要一段时间才能实际提交,但是如果您返回到本地存储库文件夹,则应该看到您的新项目。我不得不重新创建父文件夹,但这只是移动文件的问题。转到GitHub.com并刷新浏览器,您的新文件也应在那里。

希望这有所帮助。


5
Follow below gitbash commands to push the folder files on github repository :-
1.) $ git init
2.) $ git cd D:\FileFolderName
3.) $ git status
4.) If needed to switch the git branch, use this command : 
    $ git checkout -b DesiredBranch
5.) $ git add .
6.) $ git commit -m "added a new folder"
7.) $ git push -f https://github.com/username/MyTestApp.git TestBranch
    (i.e git push origin branch)

4
  1. 从命令行进入本地库目录。
  2. 在GitHub上创建新的存储库,它会为您提供以.git结尾的链接。
  3. 在cmd中运行:git remote add origin [您的GitHub存储库链接](记住链接应以.git结尾)
  4. 然后运行:git push -u origin master

希望这对您有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接