将现有项目推入Github


224

我有一个包含项目源的文件夹。如何将这个项目推送到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,但是什么也没有推送到远程仓库...(无授权失败)

那么如何将现有资源推送到新创建的github存储库中?


4
的输出到底是什么git push
1615903年

1
@ user1615903我确定我的步骤顺序错误。我想我需要类似的东西git clone。我不记得来自的输出git push,但是我认为这并不重要。因为问题在另一个地方
MyTitle

你做了git push MyProject master
Felix Kling 2013年

这篇博客文章可能会帮助想要执行此任务的任何人。简单,详细地描述了所有步骤。samranga.blogspot.com/2015/07/...
Samitha Chathuranga

1
一个小建议,尝试使用SourceTree应用。UI非常好。
穆罕默德·费里德

Answers:


340
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
这解决了我的问题,但我不能命令4 git remote add origin <project url>command syntax not correct。我忽略了它,但它起作用了
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

2
相信-f国旗会迫使遥远的历史消失吗?看来是危险的操作员。
van abel

112

用较少的技术术语

我的回答没有什么不同,但是我要添加更多的信息,因为那些新知识可以从填补信息空白中受益。

在github上创建存储库后,它们将具有说明。您可以遵循这些。但是这里有一些额外的技巧,因为我知道开始使用git是多么令人沮丧。

假设您已经在本地启动了项目。你有多少没关系。但是,让我们假装您有一个php项目。假设您有index.php,contact.php以及包含图像,css和字体的资产文件夹。您可以通过这种方式(轻松)进行操作,但是有很多选择:

选项1

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

在此处输入图片说明

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

在此处输入图片说明

您可以(或以其他方式执行)然后将内容从现有项目复制到新的存储库中。使用github应用程序,您可以从那里使用其GUI进行提交(这意味着您只需单击应用程序中的按钮)。当然,您要输入提交的注释。

选项2

  • 如上所述,在github上创建您的仓库。
  • 在计算机上,使用终端转到目录。使用linux命令行,您将cd进入目录。在这里,您运行以下命令以将现有项目“连接”到github上的仓库。(这是假设您在github上创建了您的存储库,并且当前为空)

首先执行此操作以初始化git(版本控制)。

git init

然后执行此操作以添加所有要“监视”的文件。如果您有要忽略的文件,则需要添加一个,.gitignore但是为了简单起见,请使用此示例进行学习。

git add .

然后提交并在""“第一次提交”等之间添加注释。

 git commit -m "Initial Commit"

现在,在这里添加您的现有仓库

git remote add github <project url>

但是,不要直接输入<project url>,而要输入您自己的项目URL。你怎么得到的?转到您的仓库位于github上的链接,然后复制该链接。在我的情况下,我的存储库之一是https://github.com/JGallardo/urbanhistorical,因此此命令的最终URL将在此之后添加.git。所以这是

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

进行测试以查看其是否有效

git remote -v

您应该看到您的回购链接。

在此处输入图片说明

然后您可以将更改推送到github

git push github master

要么

git push origin master

如果仍然出现错误,可以通过强制执行-f。但是,如果您在团队环境中工作,请注意不要强行使用,否则可能会造成更多问题。

git push -f origin master

3
您的最好的解释。对于其他阅读此内容的人:我首先在github上创建了我的存储库,所以它不允许我推送。我必须> github pull <project url>,然后github push。之后,一切都很好。
philologon

1
非常感谢你做的这些!在其他所有选项均失败之后,选项1挽救了我的生命!:D
SaraInésCalderón16年

2
很好的解释!但是我会添加以下几行:git remote add origin <项目url>,然后git push -f origin master。如果没有-f,将出现错误
Javiar Sandra

1
请-f选项添加到最后一个命令,这样,你的回答是最好的
雅各布柯尼希

1
真的有帮助!我不小心用README初始化了github仓库,然后它没有用。我又用一个空的仓库做了一次,它奏效了。
Verena Haunschmid'1

36

您需要在推送时指定哪个分支哪个远程

➤ 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

这样您就可以在git push不指定远程或分支的情况下从主服务器执行操作。


1
正确。您也可以跳过该/master部分,因为它是多余的。
加布里埃尔·彼得罗内拉

1
“ git add Readme.md”不正确。如果已经存在,则无需添加。如果不存在,该命令将失败。无论哪种方式,这都是不正确的。
米奇

1
@Mitch这不是秘密的神奇调用,它会突然使您的计算机执行您想要的操作。这是一个让人们和他们应该做什么的想法的例子。我希望人们能够理解他们在计算机中键入的命令。
布莱斯

9

如果您使用的是Mac(并且在PC上可能也是如此),这是一种非常简单的方法。奇怪的是,对于这个简单的过程,我一直视而不见,却从未发现。

  • 不要在Github上做任何事情(除了拥有一个帐户,并且没有用完所有可用的存储库外)。
  • 下载Mac版GitHub并安装。进行帐户设置等。请勿为现有项目创建任何存储库。
  • 存储库中的“添加新的本地存储库”。
  • 选择现有文件夹。它将询问您是否要这样做,是的。
  • 完成后,您将看到所有文件等的列表。提交它们。
  • 转到存储库并发布(如果您正确设置了帐户,这将为您在GitHub上创建新的存储库)。
  • 转到存储库并推送(您将看到“没什么可推送”的内容,或者它将您的文件/更改推送到新创建的存储库中)。
    • 想知道为什么您在其他地方找不到这个简单的过程。

我知道不建议将项目文件夹用作回购文件夹。我一直在做,它总是有效,使它变得简单,而且我从来没有遇到任何麻烦。


在我看来,如果GitHub应用允许用户以这种方式进行操作,那一定很好。
johnnieb '16


5

我将遵循Rose P的先前评论。我花了很长时间才找到解决方案,所以我重新发布了(希望用简单的英语)对我有用的...

第1步:在Github.com上创建新的存储库(如果已有存储库则跳过)

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

第3步:打开一个新的终端窗口(是的,您必须使用终端...我尝试了其他所有方法...无济于事)

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

第5步:输入git init, 您将获得如下内容。 重新初始化/ {current directory}中的现有Git存储库

步骤6:输入git add。 在此步骤之后没有任何反应,但是键入它并继续下一步。

步骤7:键入git commit -m“ Initial commit”,您将获得以下信息:#在分支master上,无需提交任何内容,工作目录干净

要么

有关配置的一些说明,然后是已更改的文件列表。

步骤8:输入git remote add origin {project url} 项目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
git init

将文件添加到新的本地存储库中。这将它们暂存为第一次提交。

git add .

将文件添加到本地存储库中,并暂存以进行提交。要取消暂存文件,请使用“ git reset HEAD YOUR-FILE”。

提交您在本地存储库中暂存的文件。

git commit -m "First commit"
# Commits the tracked changes and prepares them to be pushed to a remote

资料库。要删除该提交并修改文件,请使用'git reset --soft HEAD〜1'并再次提交并添加文件。复制远程存储库URL字段在GitHub存储库的快速设置页面顶部,单击以复制远程存储库URL。

在命令提示符下,添加将在其中推送本地存储库的远程存储库的URL。

git remote add origin remote repository URL
# Sets the new remote
git remote -v
# Verifies the new remote URL

将本地存储库中的更改推送到GitHub。

git push origin master
# Pushes the changes in your local repository up to the remote repository you 

指定为原点


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

希望这是有用的。


4

创建一个新的仓库

git clone <url>
cd "repositoryName"
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

现有资料夹

cd existing_folder
git init
git remote add origin <url>
git add .
git commit -m "Initial commit"
git push -u origin master

现有的Git存储库

cd existing_repo
git remote rename origin old-origin
git remote add origin <url>
git push -u origin --all
git push -u origin --tags

提交和推送之间有什么区别?推中指的是什么“起源”和“主人”?分店?
ealeon

2

首先,在Github上使用您的项目名称创建一个新的存储库,然后按照以下步骤操作。

1)git init
2)git add *
3)git commit -m "first commit"
4)git remote add origin https://github.com/yuvraj777/GDriveDemo.git
5)git push -u origin master

2

我知道,这是一个古老的问题,但是我正在尝试解释每个步骤,因此可能会对其他人有所帮助。这就是我将现有源添加到git的方式:

  1. 在git上创建仓库,这样就可以使用ssh ||。您将要远程访问的https添加源代码。
  2. 在终端中,转到项目的路径。
  3. 运行git init(在这里,您以git one启动项目)。
  4. 运行git add *(在此处添加项目中的所有文件和文件夹)。
  5. 运行git commit -m "Initial Commit."(在此处提交您在第4步中添加的文件和文件夹;请记住,如果不提交更改,则无法推送更改)。
  6. 运行git remote add origin https://your_username@bitbucket.org/your_username/project-name.git(在此处添加一个远程项目,将其推送到您的源;将我的链接替换为步骤1中的ssh || https)。
  7. 运行git push -u origin master(将您的源代码推送到git仓库中)。

注意:这些是将源推入master分支的简单步骤。


2

讨厌添加另一个答案,但是我的特殊情况在这里没有涉及。我有一个本地存储库,其中包含要保留的更改历史记录,还有一个在Github上为我创建的非空存储库(即默认的README.md)。是的,您始终可以将Github存储库重新创建为一个空存储库,但是在我的情况下,其他人有权创建此特定存储库,如果有一个简单的解决方法,我也不想麻烦他。

在这种情况下,尝试git push在设置远程原点之后尝试时会遇到此错误:

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:<my repo>.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 integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

如错误所示,git pull设置远程原点后需要执行操作,但是需要指定--allow-unrelated-histories选项。如果没有此选项,git pull抱怨warning: no common commits

因此,这是对我有用的命令的确切顺序:

git remote add origin <github repo url>
cp README.md README.md-save
git pull origin master --allow-unrelated-histories
mv README.md-save README.md
git commit -a
git push

我有同样的问题,但是您的步骤导致了一些奇怪的文本编辑器问题
john ktejik

嗯,我猜您通常使用UI且通常不从命令行提交(这没什么问题,我使用SourceTree UI)。弹出的编辑器很可能是vi编辑器,它的界面本身就是一个完整的主题,因此在这里我不再赘述。
乔纳森·菲舍尔

2

从2019年7月29日开始,Github向用户提供创建存储库时完成此任务的说明,并提供以下几种选项:

在命令行上创建一个新的存储库

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

从命令行推送现有存储库

git remote add origin https://github.com/novomotus/vitaprice.git
git push -u origin master

从另一个存储库导入代码

import按钮初始化过程。

对于那里的视觉学习者:

在此处输入图片说明




0

我发现以“自然”顺序刺激更新比强制推动事物更容易。

假设该回购已在github上创建,并且您可能还已经在README.md中放入了一些东西。

  1. 在计算机上,打开终端,然后 git clone [repo URL]

  2. 您会看到将创建一个带有您的回购名称的新文件夹。随时重命名-没关系。

  3. 将您的代码,文件等移至该文件夹。如果需要,请编辑README.md。

  4. 现在打开终端/命令提示符,进入该文件夹并执行操作,就好像您要对存储库进行下一次更新一样:

git add .
git commit -m "v2"
git push origin master

注意:在提交命令时,git可能会拒绝,要求首先配置用户电子邮件和密码。遵循屏幕上给出的步骤,然后再次运行commit命令。

  1. 这三个命令是您现在每次要推送另一个更新时要执行的操作。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.