Github“更新被拒绝,因为遥控器包含您没有的工作”


176

我创建了一个新的存储库,将其克隆,将文件添加到目录中,并使用add -A,提交更改以及在尝试使用git push <repo name> master我收到“更新被拒绝,因为远程包含您没有的工作”。

这似乎没有任何意义,因为它是一个新的回购协议,仅包含一个自述文件。

Answers:


308

如果您使用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

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


7
首先,我创建了YouTube视频,其中包含更详细的说明和两种建议的避免这种问题的方法。
凯文·马克汉姆

16
对于合并命令,我需要使用git pull origin master --allow-unrelated-histories
Luciano Marqueto,

我收到“致命的消息:拒绝合并无关的历史记录”
Sergi

4
@Sergi trygit pull origin master --allow-unrelated-histories
palerdot

101

该错误可能是由于您提交的代码和存在于GitHub上的代码结构不同所致。它产生了可以解决的冲突

git pull

合并冲突解决:

git push

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

git push -f origin master

哪里-f代表“强制提交”。


13
'git push -f origin master'-这有帮助
1998年

4
git push -f用您的本地历史记录覆盖远程历史记录,使用时要小心。特别是在公共存储库上。
安德烈(Andre)

updates-were-rejected如果您在远程的github存储库中进行了更改,也会发生这种情况,例如:使用github gui在自述文件中进行了一些更改。然后尝试将您的新作品推送到github,它将显示此消息,说明您在远程所做的更改但不在本地显示。
Deke '18

13

如果这是你的第一推

只需更改

git push <repo name> master

像这样改变它!

git push -f <repo name> master

1
这样会丢弃像原始文件中最初创建的文件。而是使用git pullbefore来获取远程文件,然后合并您的提交。就像接受的答案一样
JayJay

@jayjaybricksoft谢谢您的评论。这是第一次推送,因此可以替换原始文件。
Mahyar


2

提供的答案对我不起作用。

我在GitHub上有一个空的仓库,只有LICENSE文件,本地只有一个提交。起作用的是:

$ git fetch
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
 LICENSE | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 LICENSE

同样在merge您可能想要之前:

$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.

0

我遵循以下步骤:

拉大师:

git pull origin master

这会将您的本地存储库与Github存储库同步。添加您的新文件,然后:

git add .

提交更改:

git commit -m "adding new file  Xyz"

最后,推送原始主机:

git push origin master

刷新您的Github存储库,您将看到新添加的文件。


0

如果您使用的是Visual S2019,请创建一个新的本地分支,如下所示,然后将所做的更改推送到存储库中 VS2019本地分支

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.