【问题标题】:Master branch is "Already up-to-date", and yet it is "ahead of origin/master by 4 commits"?Master 分支是“已经是最新的”,但它是“领先于 origin/master 4 次提交”?
【发布时间】:2017-05-19 12:53:59
【问题描述】:

我知道,如果我在本地 master 分支上提交了不在远程 master 分支中的提交,那么我可以得到“您的分支在 X 提交之前领先于 origin/master”。

但是,在我git pull origin master 之后,我看到了“已经是最新的”消息。所以,我认为这意味着:我的所有提交都没有领先/落后于主人。

但是当我做git status 仍然时,我收到了这条消息“你的分支在 X 提交之前领先于 origin/master”。即使我这样做了git pull -f origin master,我仍然收到这条消息!当我“已经是最新的”时,这怎么可能?

我了解this 之类的问题,但他们仍然没有告诉我为什么“最新”意味着“领先”?

【问题讨论】:

  • 只要你不推送到那个分支,你就领先于远程分支。

标签: git github version-control git-pull git-checkout


【解决方案1】:

让我们用下面的图表来说明:

假设这是远程主分支,

A---B---C origin/master

这是你的本地主分支,你在本地进行 X 次提交,

A---B---C---D---E---…---N master

因此,当您想将远程主分支(提交 A、B 和 C)拉到本地提交中已经存在的本地时,git 将为您显示 already up-to-date message。这和 git status 的messge Your branch is ahead of origin/master by X commits是一致的。

【讨论】:

  • 好的,所以“提前”只是意味着在提交方面按时间顺序提前?
  • 是的,前面的意思是你在本地添加的提交X。
  • @Candic3:与其说是“时间顺序”,不如说是“拓扑”,因为它不是基于时间,而是基于位置。你领先,因为领先。如果我还回信到您的origin 上的共享存储库,并且 领先于origin,然后 推送到它并首先到达那里也origin之前)。但如果我赢得了这场推送“竞赛”,现在就由你来收集这些提交并弄清楚如何整合它们。
猜你喜欢
  • 2013-04-23
  • 2012-04-27
  • 1970-01-01
  • 2011-01-21
  • 2012-06-17
  • 2022-01-04
  • 2015-10-20
相关资源
最近更新 更多