谁能告诉我0ab11dd和bd7278a之间发生了什么? 还有27ac7b7和95b2c48之间? 为什么这些提交中有交叉?
* xxxxxxx (HEAD -> f-1, origin/f-1)
* xxxxxxx fix merge conflicts
* 13751d5 Merge branch 'master' into feature/DP-1
|\
| * f3efc9d (origin/master, origin/HEAD, master) Merge pull request #9 from fix
| |\
| | * 83c0b15 (origin/fix)
| |/
| * be24ce6 Merge pull request
| |\
| | * 0ab11dd merge
| | |\
| | |/
| |/|
| * | bd7278a Merge pull request
| |\ \
| | * | 14399e2
| | | * xxxxxxx
| | | * xxxxxxx
| | | * 27ac7b7 merge
| | | |\
| | |_|/
| |/| |
| | | * 95b2c48 (origin/f-3)
| | | * xxxxxxx
尤其是这个
| | |_|/
| |/| |
为什么有out分支但没有提交?
答案 0 :(得分:1)
关于“分频器”
这只是图形工具表示合并的方式:从右到左(左边的一个是“接收”合并的一个)。因此,当必须将一个提交系列(而不是说可能引起混淆的分支)合并到另一个当前恰好在其右侧以图形方式表示的分支时,该工具会画一条线,是的,与其他线交叉以使其从右侧 到合并提交的结点。
所以这只是一个图形约定。
关于竖线 (注释后)
在当前指向的提交处将分支(可选地,使用--decorate添加)添加到图形中,但是请不要忘记您的repo树实际上并不需要它们。这些提交系列就是您的树的主体,“分支”实际上只是技巧,这就是隐喻分解的地方...
(我向您保证这是一个技术含量很低的表示,...但是我们也要承认,翔实的提交消息会让事情变得更清晰。)
答案 1 :(得分:1)
这将是一个注释,但没有空间,需要格式化。
此部分:
| | | * 27ac7b7 merge
| | | |\
| | |_|/
| |/| |
| | | * 95b2c48 (origin/f-3)
| | | * xxxxxxx
不完整。如果继续浏览该图,它最终可能会这样解决自己:
| | | * xxxxxxx
| | |/
| | * yyyyyyy
| |/
| * zzzzzzz
|/
* sssssss
(但我们无法真正猜到,而且可能比这复杂得多)。
有了足够的附加图形,我们可以进一步介绍提交27ac7b7
。目前,我们所知道的是这是具有两个父级的合并,并且第一个父级是95b2c48
(标记为origin/f-3
)。我们在这里看不到第二个父提交的哈希ID,但是沿着图线,您最终将到达第二个父提交。
(您要求的第一个提交-0ab11dd
-是与父项xxxxxxx
的合并提交,是沿着该行的直接向下行执行并提交bd7278a
的结果,跟随最初向右下降的线的结果,然后立即反转并向下交叉到bd7278a
。git log --graph
通过向右拉出非第一链接来强调亲子关系的第一/非第一关系。一些图形绘制方法(包括我通常使用的方法)根本没有区别,何时以及是否有用是另一个主题,但是请参见--first-parent
的{{1}}选项。)< / p>