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

时间:2013-08-20 06:58:58

标签: github

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

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

8 个答案:

答案 0 :(得分:238)

如果您使用README和/或LICENSE文件

初始化了一个新的github存储库,则会发生这种情况
git remote add origin [//your github url]

//pull those changes

git pull origin master

//now, push your work to your new repo

git push origin master

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

答案 1 :(得分:83)

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

解决的冲突
git pull

合并冲突解决:

git push

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

git push -f origin master

-f代表“强制提交”。

答案 2 :(得分:9)

如果这是您的第一推

只需更改

git push <repo name> master

像这样更改它!

git push -f <repo name> master

答案 3 :(得分:6)

您可以参考:如何处理“ refusing to merge unrelated histories”错误:

$ git pull --allow-unrelated-histories
$ git push -f origin master

答案 4 :(得分:1)

我遵循了以下步骤:

拉动母带:

git pull origin master

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

git add .

提交更改:

git commit -m "adding new file  Xyz"

最后,推动原始主机:

git push origin master

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

答案 5 :(得分:0)

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

我在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

答案 6 :(得分:0)

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

VS2019 local branch

答案 7 :(得分:0)

问题是因为本地不是master分支的最新消息,这就是为什么我们应该在将代码推送到git之前先提取代码

git add .
git commit -m 'Comments to be added'
git pull origin master
git push origin master