发布在Github中推送新代码的问题

Ani*_*dha 142 git github git-push

我在Github上创建了一个新的存储库,它现在只有Readme.md文件.

我有一个新创建的RoR项目,我想将其推送到此存储库.以下是我在终端中执行的命令以及我得到的错误.

git remote add origin https://github.com/aniruddhabarapatre/learn-rails.git
Run Code Online (Sandbox Code Playgroud)

之后我输入了用户名和密码

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

错误---

To https://github.com/aniruddhabarapatre/learn-rails.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/aniruddhabarapatre/learn-rails.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.
Run Code Online (Sandbox Code Playgroud)

这是我第一次将我的代码推送到Github存储库,我迷失了错误.我在这里搜索了几个其他问题,但没有一个问题第一次出现.

小智 280

如果这是你的第一次推动

只是改变了

git push **-u** origin master
Run Code Online (Sandbox Code Playgroud)

像这样改变它!

git push -f origin master
Run Code Online (Sandbox Code Playgroud)

  • 这删除了我在github上首先提出的自述文件.现在看起来我必须重新做一遍. (5认同)
  • 你可以添加一个警告--f强制推送并且可能会弄乱代码时间线 (3认同)

Joh*_*web 163

在GitHub上创建存储库时,您创建了一个README.md,这是一个新的提交.

您的本地存储库尚不知道此提交.因此:

更新被拒绝,因为远程包含您本地没有的工作.

您可能希望遵循以下建议:

您可能希望git pull在再次推送之前首先合并远程更改(例如,' ').

那是:

git pull
# Fix any merge conflicts, if you have a `README.md` locally
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

  • 在某些情况下,你可能会得到一个"致命的:在这种情况下拒绝合并不相关的历史记录",你提交`git pull --allow-unrelated-histories origin master`然后按照上面的答案推送 (10认同)
  • 我正在做的是首先是git pull origin master然后再次推送. (3认同)

Ahm*_*ais 57

⚡️EASY:你所需要的就是强行推动.因为你可能已经readme.md在Github上创建了文件而你尚未提取它.

git push -f origin master
Run Code Online (Sandbox Code Playgroud)

这是一个GIF.

git push -f origin master

请注意:使用force可以更改同一项目中其他人的历史记录.基本上,如果您不关心为每个人删除的文件,请继续.特别是如果你是这个项目的唯一开发者.

  • 当心Github新手...如果您是通过GitHub创建的Readme.md,此命令将在您推送新更改时将其删除。 (2认同)

Sam*_*hah 34

使用以下命令发出强制推送:

git push -f origin master
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这可能会删除过去的提交,这可能是也可能不是 (10认同)

小智 8

假设您通过github提供的接口添加了Readme.md文件,则自述文件尚未在您的本地文件夹中.因此,当您尝试推送到远程仓库时,您会收到错误,因为您的本地仓库缺少自述文件 - 它可能"落后于时代",可以这么说.因此,正如错误消息中所建议的那样,首先尝试"git pull".这将从远程存储库中提取自述文件并将其与本地目录合并.之后,你应该没有问题推送到远程仓库(你发布的命令看起来对我有效).


小智 5

考虑到你有一段时间没有提交你的更改,也许这样做对你有用.

git add files
git commit -m "Your Commit"
git push -u origin master
Run Code Online (Sandbox Code Playgroud)

这对我有用,希望它也适合你.


Cha*_*nga 5

当你尝试最初推送时会发生这种情况.因为在你的GitHub仓库中有readMe.md或者你当地仓库中没有的任何其他新东西.首先,你必须合并你的github repo的无关历史.要做到这一点

git pull origin master --allow-unrelated-histories
Run Code Online (Sandbox Code Playgroud)

然后你可以使用它从repo(readMe.md或任何)获取其他文件

git pull origin master
Run Code Online (Sandbox Code Playgroud)

之后

git push -u origin master
Run Code Online (Sandbox Code Playgroud)

现在你成功地将所有更改推送到Github repo.I我不是git的专家,但每次这些步骤对我有用.