add -A
命令将它们添加到仓库中,提交了更改,但当我尝试使用git push <repo name> master
命令推送时,出现以下错误信息:
这似乎不合理,因为这是一个新的仓库,只包含一个自述文件。提示:更新被拒绝,因为远程仓库包含了本地没有的工作内容。这通常是由于另一个仓库向相同的引用推送了内容所致。在再次推送之前,您可能需要先合并远程的更改(例如,使用'git pull'命令)。
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
会为您获取和合并文件。如果您喜欢,也可以获取和合并文件。
可能出错的原因是您提交的代码结构与 GitHub 上存在的代码结构不同。这会产生冲突,可以通过以下方式解决:
git pull
解决合并冲突:
git push
如果您确认您的新代码没有问题,您可以使用:
git push -f origin master
-f
表示“强制”。
如果这是您第一次提交代码,请修改
git push <repo name> master
把它改成这样!
git push -f <repo name> master
git pull
。就像被接受的答案所述。 - Yuna您可以参考: 如何处理"refusing to merge unrelated histories"错误:
$ git pull --allow-unrelated-histories
$ git push -f origin master
如果你进行了浅克隆,这种情况也可能发生。在这种情况下,“远程仓库包含本地没有的工作”的说法在技术上始终是正确的,因为你只有有限的提交记录,而远程仓库很可能拥有完整的历史记录。如果本地仓库只有一个新的提交(这在 CI 系统中可能发生),这就会导致问题,因为没有共同的提交,无法使用 git 推送。
解决方案之一是执行一个更浅的克隆。
对于 Github Actions,你可以设置fetch-depth: 0
以获取“所有标签和分支的完整历史记录”。对于大型仓库,你可能需要调整该参数,例如在浅克隆后运行git fetch --shallow-since=<date>
,但对于小型仓库来说,这应该可以满足要求。
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
我在推送最后一次提交之后,直接在存储库中手动编辑了几个文件,并因此得到了相同的错误。
请使用 git push -f origin master
强制更新,而不是 git push origin master
。
如果你确切地知道存储库中发生了什么变化,并且你百分百确定要本地提交替换所有内容,才建议这样做。我的项目只是一个自己的兴趣项目,没有其他人在共同开发,除了手动更改之外,也没有从其他设备进行任何提交。
提供的答案对我没有用。
我在GitHub上有一个空的仓库,只有LICENSE文件和一个本地提交。以下方法有效:
1. git remote add origin [your repository url]
2. git push -u origin master
这将把你本地的master分支推送到远程仓库,并将其设置为默认分支。
希望对你有所帮助!
$ git fetch
$ git merge --allow-unrelated-histories
Merge made by the 'recursive' strategy.
LICENSE | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 LICENSE
在合并之前,您可能需要做以下几点:
最初的回答
$ git branch --set-upstream-to origin/master
Branch 'master' set up to track remote branch 'master' from 'origin'.
拉取主分支:
Pull the master:
git pull origin master
git add .
git commit -m "adding new file Xyz"
git push origin master
刷新你的Github仓库,你将会看到新添加的文件。
git add .
git commit -m 'Comments to be added'
git pull origin master
git push origin master
git pull origin master --allow-unrelated-histories
。 - Luciano Marquetogit pull origin master --allow-unrelated-histories
。 - palerdotgit pull origin master --allow-unrelated-histories
使我获救了。谢谢。 - Matin