18

如果标题不清楚,我很抱歉,但这是一个奇怪的问题。

git checkout到我的“阶段”分支并git pull获取我的合作伙伴的最新更改(他昨晚将其推送到远程存储库的“阶段”分支),果然,它们合并到我的本地“阶段”分支。git log <branch>显示了他昨晚执行的五个提交。

然后我切换到主分支以从存储库中提取它,因为他告诉我他在测试后将这些更改合并到主分支。但是当我git checkout stage回到我的“阶段”分支时,它说我领先远程分支 5 次提交。我git log origin/stage和它没有显示我刚刚从该存储库(该项目中唯一的远程存储库)中提取的五个提交。git log stage显示了我本地“阶段”分支上的五个提交,所以我不知道远程分支如何在为我提供合作伙伴的最新提交后立即回到过去。

我对此很陌生,所以我会感谢您对我的耐心,因为我仍在努力掌握 DCVS 并且很有可能我只是误解了一些非常基本的东西。

4

2 回答 2

17

试试这个命令:

git log origin/stage..stage

这向您展示了您在遥控器之前的情况。做一个git rebase origin/stage/git push酌情。

如果它没有帮助,请参阅这个问题:'git pull origin mybranch' 将本地 mybranch N 提交提前于原点。为什么?

于 2010-10-29T14:33:46.163 回答
0

在发生以下情况后,我现在遇到了类似的问题:

  • 我的同事推送了一个简单的提交
  • 我拉了那个提交,我的工具标记了“提交合并立即更改”
  • 我的同事决定做一个 --amend 来更改他的原始提交,以便它变成两个不同的提交
  • 我取消了这些更改,最终在原点之前提交了三个提交

我的简单解决方案是撤消这三个本地提交,为每个提交运行以下命令:

git reset --soft HEAD~1

然后 git status 告诉我有两个提交落后于原点,我可以像往常一样拉出这些提交。

于 2020-08-06T07:14:12.117 回答