如何阅读git日志图


92

在git社区书中,它说

您可以做的另一件有趣的事情是使用'--graph'选项可视化提交图,如下所示:

$ git log --pretty=format:'%h : %s' --graph
* 2d3acf9 : ignore errors from SIGCHLD on trap
*   5e3ee11 : Merge branch 'master' of git://github.com/dustin/grit
|\
| * 420eac9 : Added a method for getting the current branch.
* | 30e367c : timeout code and tests
* | 5a09431 : add timeout protection to grit
* | e1193f8 : support for heads with slashes in them
|/
* d6016bc : require time for xmlschema

它将为提交历史记录行提供非常漂亮的ASCII表示。

我应该如何看这张图?如何420eac9从剩下的有什么不同?

Answers:


116

星号显示某些内容在哪里提交:

e1193f85a0943130e367c提交到左支(得到|的分支,在右侧),而420eac9致力于右支(产生|在左分支)。而正是420eac9从其他地方根本不同:它是唯一承诺分支,在右侧。

为了完整性:

  • d6016bc 是分支点
  • 5e3ee11 是合并提交
  • 2d3acf9 是合并后的第一次提交

4
我有一个关于提交时间的问题,如图所示。在图中,“ 420eac9”显示在“ 30e367c”,“ 5a09431”和“ e1193f8”上方。这是否总是意味着“ 420eac9”是在其他三个之后提交的,还是将在分支上提交的组合在一起,并且它们在分支中出现的顺序没有时间相关性?
帕拉格

4
@Parag:分支中的提交被分组在一起。420eac9是在e1193f8分支的第一次提交之后完成的,但是在分支之后没有必要30e367c
eckes 2014年

1
@eckes |,左边(最左边)的符号代表我当前所在的分支吗?
J86

@ J86如果您切换到另一个分支并运行相同的命令,则会得到相同的输出,因此该图中没有引用您所在的当前分支
onofricamila

19

420eac9与位于其下方的3个提交位于不同的分支上。分支机构分开以后d6016bc,它们合并了5e3ee11


4
也许比分支分支更好的措辞是,第二个分支是从d6016bc原始分支创建并与之并行发展的。
Ilkka
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.