【问题标题】:How to read git log graph如何读取 git 日志图
【发布时间】:2011-07-19 22:18:28
【问题描述】:

在 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 与其他人有何不同?

【问题讨论】:

    标签: git git-branch git-log


    【解决方案1】:

    星号表示提交的内容:

    e1193f85a0943130e367c 被提交到左分支(在右分支上产生 |),而 420eac9 被提交到右分支(在左边产生 |分支)。 420eac9 与其他人的不同之处:它是对正确分支的唯一提交。

    为了完整起见:

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

    【讨论】:

    • 我有一个关于提交时间的问题,如图所示。在图中,“420eac9”显示在“30e367c”、“5a09431”和“e1193f8”上方。这是否总是意味着“420eac9”是在其他三个之后提交的,还是分支上的提交被组合在一起,并且它们在分支中出现的顺序没有时间相关性?
    • @Parag:分支中的提交被组合在一起。 420eac9e1193f8 分支的第一次提交之后完成,但不一定在30e367c 之后完成
    • @eckes 那么左边(最左边)的| 符号代表我当前所在的分支吗?
    • @J86 如果你切换到另一个分支并运行相同的命令,你会得到相同的输出,所以图中没有对你所在的当前分支的引用
    • 这是在哪里记录的?
    【解决方案2】:

    420eac9 与“下方”的 3 个提交位于不同的分支上。分支在d6016bc之后分叉,在5e3ee11之后合并。

    【讨论】:

    • 也许比分支分歧更好的措辞是第二个分支是从d6016bc 创建并与原始分支并行开发的。
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多