我对graphic git log的输出感到相当困惑。
我确实理解每个*
都意味着一次提交,无论它是分叉提交、公共提交还是合并提交。我确实理解管道意味着分支。
让我们来看一个简单的图表日志:
首先,红色的管道(最左边的)代表哪个分支?我不认为这是我当前所在的分支,因为在我签出到其他分支后,图形看起来是一样的。此外,它也不表示主分支。
其次,如果最左边的分支代表一个分支,为什么在提交"0e5b5“之后它会改变颜色?
我搜索了一个关于如何阅读git日志图表的教程,不幸的是,我什么也得不到。如果在这个主题上有一些很棒的教程,请随时分享。
发布于 2013-11-26 02:34:09
Git从当前提交开始查看祖先。分支不是“实体”,它们是(移动的)引用。git log (或gitk,它有不同的配色方案,但类似于git log --graph或tig)无法知道当前分支是分支A还是分支B的后代,它只知道父级。来自man git-log:
git log -p -m --first-parent
Shows the history including change diffs, but only from the "main
branch" perspective, skipping commits that come from merged
branches, and showing full diffs of changes introduced by the merges.
This makes sense only when following a strict policy of merging
all topic branches when staying on a single integration branch.
一定程度上解决了你的顾虑。默认情况下,git日志使用当前签出的提交作为引用(与执行git log HEAD
相同
虽然我个人认为git的手册页非常清晰,但你可能想看看gitk或tig。前者是一个图形界面,后者是一个类似终端的最小gitk工具。我会根据我想要做的事情来使用这两种方法。
https://stackoverflow.com/questions/20200226
复制相似问题