我创建了一个新的repo,克隆了它,将文件添加到目录中,添加了add -A
,提交了更改,当我尝试使用git push <repo name> master
时,我得到了“更新被拒绝,因为遥控器包含你没有的工作“。
这似乎没有意义,因为它是一个新的回购并且只包含一个自述文件。
答案 0 :(得分:238)
如果您使用README
和/或LICENSE
文件
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)
答案 7 :(得分:0)
问题是因为本地不是master分支的最新消息,这就是为什么我们应该在将代码推送到git之前先提取代码
git add .
git commit -m 'Comments to be added'
git pull origin master
git push origin master