运行git log
时我看到奇怪的图表。我将进一步解释。下面是带有图形的 git log 的输出。
$ git log --graph --oneline
* df1834d (HEAD -> master, tag: r-0.1, origin/master) Merge branch 'master' of https://github.com/samshers/graphql-hibernate
|\
| * d56a675 fixed country null issue
* | ee9bb70 fixed country null issue
|/
* 2617f2a hibernate cascade error issue. country field in state table set to null
如您所见,master 本身有两个独立的分支。为了进一步证实这一点,我跑了
$ git branch --contains ee9bb706c8fcc329fac4acf69ad6b684f1069170
joincolumn_issue
ls
mappedBy
* master
进而
$ git branch --contains d56a6751771b1f62d9ceb0bcce9a2391c004ee44
joincolumn_issue
ls
mappedBy
* master
很明显,这两个提交都存在于 master 上 - 那么为什么会有两个图表。 我怎么知道两个提交是否都在 master 上。或者,如果只有其中一个的变化实际上出现在主控器上,那么两者中的哪一个?
编辑 - 遵循 RY 和 Mark 的回复
(如果颜色代码增加了任何进一步的含义,请也提示这一点。)
因此,我进一步试图理解为什么提交(Y)不基于先前的提交(X)(如果 X在 Y) 之前提交。git log 显示同时提交了这两者d56a675
和ee9bb70
提交的位置。
commit ee9bb706c8fcc329fac4acf69ad6b684f1069170
Author: itsvamshers <itsvamshers@gmail.com>
Date: Mon Sep 9 17:24:01 2019 +0530
fixed country null issue
commit d56a6751771b1f62d9ceb0bcce9a2391c004ee44
Author: itsvamshers <itsvamshers@gmail.com>
Date: Mon Sep 9 17:24:01 2019 +0530
fixed country null issue
但是,在进一步挖掘时,可以看出细微的差别..
$ git show -s --format="%ct" d56a6751771b1f62d9ceb0bcce9a2391c004ee44
1568030041
和
$ git show -s --format="%ct" ee9bb706c8fcc329fac4acf69ad6b684f1069170
1568031643
这些信息应该足以让 git 将提交按正确的顺序排列。但如果不是,那我想它更聪明,而且是有原因的,只是试图理解原因和原因。