我刚完成了一段代码。想推一下,得到了已经很有名的:
提示:更新被拒绝,因为当前分支的提示在提示后面:它的远程副本。集成远程更改(例如提示:“git pull...”),然后再推一次。
现在我已经看到这个问题张贴在这里几次,例如。
Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g
Updates were rejected because the tip of your current branch is behind
根据具体情况,解决办法是:
git pull
,因此远程更改被 * 合并 * 到我的本地工作中,或者git push -f
,强制推送以更新远程(源)分支。
“现在,我已经有一段时间没有在这个分支上工作了,我不一定要将远程修改”合并“到我现在的工作中!也不知道我是否可以安全地”强制“更新原始分支......”
我如何才能看到差异,并决定哪一个最适合我的情况?
5条答案
按热度按时间hc8w905p1#
为了看到不同之处,首先你需要从原始仓库中获取提交:
git fetch origin
现在您可以看到差异(假设您位于master分支上)
git diff HEAD..origin/master
现在,你已经掌握了你所寻求的知识,可以在你做出改变之前决定是做决定还是做决定。
3xiyfsfu2#
我最近遇到了这种情况,当时我用
git checkout -b feature/abc
创建了一个新分支,提交了一些更改,然后尝试用git push --set-upstream origin feature/abc
创建一个拉请求以供查看。发生错误的原因是,当我以为我在本地定义分支时,远程分支已经存在。删除远程分支解决了这个问题,我的拉成功了。xam8gpfp3#
如果你想放弃你的本地更改,你应该运行
git reset --hard @{u}
。再次注意,这对于某些数据来说是不可逆的操作,所以在运行它之前要确保。下面是方法:要查看您当前拥有的本地提交,您可以使用
git log HEAD --not --remotes
来与任何远程分支进行比较,或者使用git log @{u}..HEAD
来查看特定于被跟踪分支的差异。要查看本地提交的实际差异,请运行
git diff @{u}...
。这将忽略远程进度,只显示您的更改。若要查看未提交的更改,请运行
git diff HEAD
。PS:您应该先运行
git fetch origin
或git remote update
来更新跟踪引用。isr3a4wc4#
我想补充一个最近发生在我身上的场景,这个错误似乎是突然出现的,即使你做的一切都是正确的。原因并不明显,但最终似乎是自git 2.0版以来默认推送行为的变化。我和一个使用git 1.8版的人合作,而我有2.x版。所以尽管我们都在做git推送,对我们来说,只要在git 1.8版的计算机上运行以下命令改变默认的推送行为,问题就解决了-
git config --global push.default simple
这会将git版本〉=1.7的push.default更改为与2.0版本相同。对于较低版本的git,你可能需要另一个默认行为。我们都是git新手,所以如果我说错了请纠正我,但这确实让我们的“Updates were rejected...”错误消失了。
此外,如果有一个更好的地点为这个答案,让我知道,我会很乐意把它移到其他地方。
pgx2nnw85#
我发现此命令工作正常:
一月一日
您只需要添加一个-f标志来强制推送。