gpt4 book ai didi

git - merge 后分支比原点领先多个提交

转载 作者:行者123 更新时间:2023-12-04 12:15:44 35 4
gpt4 key购买 nike

我有两个看起来像这样的分支:

    X--X [origin/master, master]
.../
\
----X--X--X--X--X--X [origin/x, x]
然后我 merge 了 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 中的分支不是提交链,正如您所想的那样。这是一次提交。通过沿着父链向后走,其他一切都只是可以从一次提交中到达的提交。
嗯,一个 merge 提交,比如你刚刚创建的,有两个父级,其中一个是刚刚 merge 的分支提交。所以 merge 后,所有以前只能从 x 访问的提交。现在也可以从 master 到达(因为 x 现在是 master 的父项之一,这是 merge 提交)。
因此,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 个提交。

关于git - merge 后分支比原点领先多个提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67667185/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com