有几种方法可以找到一组分支的共同祖先提交。分支长度的问题有几个答案:Git 中的分支从哪里开始?.
一个答案(这是我的一个)是使用该show-branch
命令,将您想要比较的分支列表作为参数传入并为其找到共同的祖先提交。这是Linux Kernel Git 文档中的一个示例show-branch
$ git show-branch master fixes mhf
* [master] Add 'git show-branch'.
! [fixes] Introduce "reset type" flag to "git reset"
! [mhf] Allow "+remote:local" refspec to cause --force when fetching.
---
+ [mhf] Allow "+remote:local" refspec to cause --force when fetching.
+ [mhf~1] Use git-octopus when pulling more than one heads.
+ [fixes] Introduce "reset type" flag to "git reset"
+ [mhf~2] "git fetch --force".
+ [mhf~3] Use .git/remote/origin, not .git/branches/origin.
+ [mhf~4] Make "git pull" and "git fetch" default to origin
+ [mhf~5] Infamous 'octopus merge'
+ [mhf~6] Retire git-parse-remote.
+ [mhf~7] Multi-head fetch.
+ [mhf~8] Start adding the $GIT_DIR/remotes/ support.
*++ [master] Add 'git show-branch'.
在该示例中,master
正在与fixes
andmhf
分支进行比较。将此输出视为一个表,每个分支都有自己的列,每个提交都有自己的行。包含提交的分支将在该提交的行中的列中显示+
或显示。-
在输出的最底部,您会看到所有 3 个分支共享一个共同的祖先提交,并且它实际上是以下head
提交master
:
*++ [master] Add 'git show-branch'.
这意味着fixes
和mhf
都从master
.