我创建了一个新的repo,克隆它,将文件添加到目录中,使用add -A添加它们,提交更改,当我尝试使用git push <repo name> master时,我得到:
提示:更新被拒绝,因为远程包含您在本地没有的工作。这通常是由另一个存储库推送到相同的引用引起的。您可能希望首先合并远程更改(例如, 提示:'git pull'),然后再次推。
这似乎没有意义,因为它是一个新的回购,只包含一个自述文件。
我创建了一个新的repo,克隆它,将文件添加到目录中,使用add -A添加它们,提交更改,当我尝试使用git push <repo name> master时,我得到:
提示:更新被拒绝,因为远程包含您在本地没有的工作。这通常是由另一个存储库推送到相同的引用引起的。您可能希望首先合并远程更改(例如, 提示:'git pull'),然后再次推。
这似乎没有意义,因为它是一个新的回购,只包含一个自述文件。
当前回答
如果你有一个浅克隆,这种情况也会发生。在这种情况下,“远程包含本地没有的工作”在技术上总是正确的,因为您只有有限的提交集,而远程可能拥有完整的历史记录。如果本地回购只有一个新的提交(这可能发生在CI系统上),那么这就会导致问题,因为没有共同的提交,git将无法推送。
一种解决方案是执行一个不那么浅的克隆。
对于Github Actions,你可以设置fetch-depth: 0来拉“所有标签和分支的所有历史”。对于大型回购,你可能想要调优,例如,在shallow clone之后运行git fetch——shallow-since=<date>,但对于小型回购,这应该没问题。
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
其他回答
如果你有一个浅克隆,这种情况也会发生。在这种情况下,“远程包含本地没有的工作”在技术上总是正确的,因为您只有有限的提交集,而远程可能拥有完整的历史记录。如果本地回购只有一个新的提交(这可能发生在CI系统上),那么这就会导致问题,因为没有共同的提交,git将无法推送。
一种解决方案是执行一个不那么浅的克隆。
对于Github Actions,你可以设置fetch-depth: 0来拉“所有标签和分支的所有历史”。对于大型回购,你可能想要调优,例如,在shallow clone之后运行git fetch——shallow-since=<date>,但对于小型回购,这应该没问题。
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
错误可能是因为你提交的代码结构和GitHub上的代码结构不同。它制造的冲突可以通过
git pull
合并冲突解决:
git push
如果你确认你的新代码是好的,你可以使用:
git push -f origin master
f代表“力”。
这个问题是因为本地并不是最新的主分支,这就是为什么我们应该在将代码推到git之前将其拉出
git add .
git commit -m 'Comments to be added'
git pull origin master
git push origin master
如果这是你的第一次尝试
只要把
git push <repo name> master
像这样改变它!
git push -f <repo name> master
简单地运行这些命令:
git拉 Git添加。 git commit -m 'Your comment' git推