Github"更新被拒绝,因为遥控器包含你没有的工作"

nod*_*dwj 156 github

我创建了一个新的repo,克隆它,将文件添加到目录,添加了它们add -A,提交了更改,当我尝试使用时,git push <repo name> master我得到"更新被拒绝,因为遥控器包含你没有的工作".

这似乎没有意义,因为它是一个新的repo并且只包含一个自述文件.

pal*_*dot 257

如果使用README和/或LICENSE文件初始化新的github存储库,则会发生这种情况

git remote add origin [//your github url]

//pull those changes

git pull origin master 

// or optionally, 'git pull origin master --allow-unrelated-histories' if you have initialized repo in github and also committed locally

//now, push your work to your new repo

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

现在,您将能够将存储库推送到github.基本上,您必须将这些新的初始化文件与您的工作合并.git pull为您提取并合并.如果适合你,你也可以获取和合并.

  • 对于merge命令,我需要使用`git pull origin master --allow-unrelated-histories` (13认同)
  • 我创建了[YouTube视频](https://www.youtube.com/watch?v=h1e8oC7g0Ps&list=PL5-da3qGB5IBLMp7LtN8Nc3Efd4hJq0kD),其中包含更详细的解释和两种建议的方法,以避免此问题. (5认同)
  • 我得到“致命:拒绝合并不相关的历史” (3认同)
  • @Sergi尝试`git pull origin master --allow-unrelated-histories` (2认同)

小智 90

错误可能是因为您提交的代码的结构不同而且存在于GitHub上.它会产生可以通过解决的冲突

git pull
Run Code Online (Sandbox Code Playgroud)

合并冲突解决:

git push
Run Code Online (Sandbox Code Playgroud)

如果您确认您的新代码一切正常,您可以使用:

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

-f代表"逼犯".

  • 'git push -f origin master' - 这有帮助 (11认同)
  • git push -f用您的本地历史记录覆盖远程历史记录,使用时要小心.特别是在公共存储库上. (4认同)
  • 如果您在远程的 github 存储库中进行了更改,也会发生“更新被拒绝”,例如:使用 github gui 在自述文件中进行了一些更改。然后尝试将您的新作品推送到 github,它会显示此消息,说明您在远程进行的更改但在本地不存在。 (2认同)

Mah*_*yar 12

如果这是你的第一次推动

只是改变了

git push <repo name> master
Run Code Online (Sandbox Code Playgroud)

像这样改变它!

git push -f <repo name> master
Run Code Online (Sandbox Code Playgroud)


Che*_*ana 12

您可以参考:如何处理“拒绝合并无关历史”错误:

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


and*_*otn 5

如果您有浅克隆,也可能会发生这种情况。在这种情况下,从技术上讲,\xe2\x80\x9c 远程包含您本地没有的工作总是正确的,\xe2\x80\x9d 因为您的提交集有限,而远程可能具有完整的历史记录。如果本地存储库只有一个新提交\xe2\x80\x94,这可能发生在 CI 系统\xe2\x80\x94 上,这会导致问题,因为没有共同的提交,并且git无法推送。

\n

一种解决方案是执行较浅的克隆。

\n

对于 Github Actions,您可以设置fetch-depth: 0为拉取所有标签和分支的 \xe2\x80\x9 调用历史记录。\xe2\x80\x9d 对于大型存储库,您可能需要对其进行调整,例如,在git fetch --shallow-since=<date>浅克隆之后运行,但对于小回购应该没问题。

\n
steps:\n  - uses: actions/checkout@v3\n    with:\n      fetch-depth: 0\n
Run Code Online (Sandbox Code Playgroud)\n