git:"更新被拒绝,因为您当前分支的提示已落后......"但如何看待差异?

fab*_*ous 15 git

我刚刚完成了一段代码.想要推动并获得已经很有名的:

提示:更新被拒绝,因为当前分支的提示背后提示:它的远程对应物.在再次推送之前集成远程更改(例如提示:'git pull ...').

现在我已经在这里多次看过这个问题,例如

更新被拒绝,因为您当前分支的提示背后提示:它的远程对应物.整合远程变更(例如

更新被拒绝,因为您当前分支的提示落后

根据具体情况,解决方案要么是

  • git pull,所以远程更改合并到我的本地工作,或
  • git push -f,强制推动更新远程(原点)分支.

现在,我已经有一段时间没有在这个分支上工作了.我不一定想远程更改合并到我当前的工作中!我也不知道我是否可以安全地强制更新原始分支...

我怎样才能看出差异并决定哪种情况最适合我的情况?

djb*_*djb 13

最近,当我创建一个新分支git checkout -b feature/abc,提交一些更改,然后尝试git push --set-upstream origin feature/abc创建拉取请求以供审核时,我就遇到了这种情况。发生错误是因为当我认为在本地定义分支时远程分支已经存在。删除远程分支解决了问题,我的推送成功了。


小智 11

我发现这个命令可以正常工作:

git push -u origin main -f

您只需要添加一个 -f 标志即可强制推送。


Ben*_*Ben 7

为了查看差异,首先您需要从原始存储库中获取提交:

git fetch origin

现在你可以看到差异(假设你在主分支上) git diff HEAD..origin/master

现在,您已经掌握了决定更改merge或更改更改rebase之前的知识push

  • 两点混合了对远程和本地分支机构所做的差异。在这种情况下,最好使用 [三点差异](https://git-scm.com/docs/git-diff#git-diff-emgitdiffem--optionsltcommitgtltcommitgt--ltpathgt82308203) 来查看特定于任一的更改本地或远程端。 (2认同)