git:“更新被拒绝,因为你当前分支的尖端在后面...”但是如何查看差异呢?

jhkqcmku  于 2022-11-27  发布在  Git
关注(0)|答案(5)|浏览(194)

我刚完成了一段代码。想推一下,得到了已经很有名的:
提示:更新被拒绝,因为当前分支的提示在提示后面:它的远程副本。集成远程更改(例如提示:“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,强制推送以更新远程(源)分支。

“现在,我已经有一段时间没有在这个分支上工作了,我不一定要将远程修改”合并“到我现在的工作中!也不知道我是否可以安全地”强制“更新原始分支......”
我如何才能看到差异,并决定哪一个最适合我的情况?

hc8w905p

hc8w905p1#

为了看到不同之处,首先你需要从原始仓库中获取提交:
git fetch origin
现在您可以看到差异(假设您位于master分支上)git diff HEAD..origin/master
现在,你已经掌握了你所寻求的知识,可以在你做出改变之前决定是做决定还是做决定。

3xiyfsfu

3xiyfsfu2#

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

xam8gpfp

xam8gpfp3#

如果你想放弃你的本地更改,你应该运行git reset --hard @{u}。再次注意,这对于某些数据来说是不可逆的操作,所以在运行它之前要确保。下面是方法:
要查看您当前拥有的本地提交,您可以使用git log HEAD --not --remotes来与任何远程分支进行比较,或者使用git log @{u}..HEAD来查看特定于被跟踪分支的差异。
要查看本地提交的实际差异,请运行git diff @{u}...。这将忽略远程进度,只显示您的更改。
若要查看未提交的更改,请运行git diff HEAD
PS:您应该先运行git fetch origingit remote update来更新跟踪引用。

isr3a4wc

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...”错误消失了。
此外,如果有一个更好的地点为这个答案,让我知道,我会很乐意把它移到其他地方。

pgx2nnw8

pgx2nnw85#

我发现此命令工作正常:

一月一日

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

相关问题