合并后分支比原点领先不止一次提交
Branch is ahead of origin by more than one commit after merge
我有两个看起来像这样的分支:
X--X [origin/master, master]
.../
\
----X--X--X--X--X--X [origin/x, x]
然后我将 x
合并到 master
所以现在我有这个:
[origin/master]
X--X------------------X [master]
.../ /
\ /
----X--X--X--X--X--X [origin/x, x]
现在当我 git status
我得到:
On branch master
Your branch is ahead of 'origin/master' by 7 commits.
(use "git push" ...)
...
为什么是 7 次提交?从图片(我在 git log --graph
上画的)看来它应该领先 1 次提交。其他 6 个提交用于分支 x
.
Other 6 commits are for branch x
啊哈,那正是你错的地方。请记住,Git 中的分支 不是 提交链,这是您的想法。这是 一个 提交。其他所有内容都只是通过沿着父链向后走从那个提交可达的提交。
嗯,一个合并提交,比如你刚刚创建的,有 两个 个父级,其中一个是刚刚合并的分支提交。所以在合并之后,所有以前只能从 x
访问的提交现在也可以从 master
访问(因为 x
现在是 master
的父级之一,这是合并提交) .
所以 Git 在这里所做的就是计算现在有多少提交可以从 master
到达而不能从 origin/master
到达,就像这样:
[origin/master] 7
X--X------------------X [master]
.../ /
\ /
----X--X--X--X--X--X [origin/x, x]
1 2 3 4 5 6
Git 不关心使情况如此的 拓扑 ;它只是报告一个数字。
所以Git报告的数字可能看起来不直观,但实际上它是完全准确的。这是一个有用的数字! Git 正确地报告说,如果您现在要推送,导致 origin/master
上升到 master
,那么 origin/master
将能够达到目前无法达到的 7 次提交,并且远程存储库将获得它当前没有的 7 个提交。
我有两个看起来像这样的分支:
X--X [origin/master, master]
.../
\
----X--X--X--X--X--X [origin/x, x]
然后我将 x
合并到 master
所以现在我有这个:
[origin/master]
X--X------------------X [master]
.../ /
\ /
----X--X--X--X--X--X [origin/x, x]
现在当我 git status
我得到:
On branch master
Your branch is ahead of 'origin/master' by 7 commits.
(use "git push" ...)
...
为什么是 7 次提交?从图片(我在 git log --graph
上画的)看来它应该领先 1 次提交。其他 6 个提交用于分支 x
.
Other 6 commits are for branch x
啊哈,那正是你错的地方。请记住,Git 中的分支 不是 提交链,这是您的想法。这是 一个 提交。其他所有内容都只是通过沿着父链向后走从那个提交可达的提交。
嗯,一个合并提交,比如你刚刚创建的,有 两个 个父级,其中一个是刚刚合并的分支提交。所以在合并之后,所有以前只能从 x
访问的提交现在也可以从 master
访问(因为 x
现在是 master
的父级之一,这是合并提交) .
所以 Git 在这里所做的就是计算现在有多少提交可以从 master
到达而不能从 origin/master
到达,就像这样:
[origin/master] 7
X--X------------------X [master]
.../ /
\ /
----X--X--X--X--X--X [origin/x, x]
1 2 3 4 5 6
Git 不关心使情况如此的 拓扑 ;它只是报告一个数字。
所以Git报告的数字可能看起来不直观,但实际上它是完全准确的。这是一个有用的数字! Git 正确地报告说,如果您现在要推送,导致 origin/master
上升到 master
,那么 origin/master
将能够达到目前无法达到的 7 次提交,并且远程存储库将获得它当前没有的 7 个提交。