如何理解git日志图?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (22)

我对图形git日志的输出非常困惑。

我知道每个人*指提交,无论是发散提交、公共提交还是合并提交。我明白管道意味着分支。

让我们看一个简单的图表日志:

首先,红色管道(最左边的)代表哪个分支?我不认为这是当前的分支,因为在我签出到其他分支后,图表看起来是一样的。此外,它也不代表主分支。

第二,如果最左边的分支代表一个分支,那么为什么在提交“0e5b5”之后它会改变颜色呢?

我找了一本关于如何阅读git日志图的教程,不幸的是,我什么也没有。如果有一些关于这个主题的很棒的教程,请随意分享。

提问于
用户回答回答于

GIT工作于当前提交,查看祖先。分支不是“实体”,它们是(移动)引用。git日志(或gitk有不同的颜色方案,但类似于git日志图或tig)无法知道当前的分支是否是分支A或分支B的后代:

   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.

在默认情况下,使用当前签出的提交作为引用(与执行相同),会在某种程度上解决您的concern.git日志git log HEAD

尽管我个人认为Git的手册页面非常清楚,但你可能想看看GITK或TIG。前者是一个图形界面,后者是一个类似终端的最小GITK工具。根据我想做的事情,我使用这两种方法。

扫码关注云+社区