- 基础用法
git merge-base $branch1 $branch2
-
描述
git merge-base 用一种三路合并的方法来查找两个提交的共同祖先;一对提交有可能有不止一个共同祖先,越晚的共同提交越好; -
进阶使用
git merge-base [-a|--all] <commit> <commit>…
git merge-base [-a|--all] --octopus <commit>…
git merge-base --is-ancestor <commit> <commit>
git merge-base --independent <commit>…
git merge-base --fork-point <ref> [<commit>]
- –octopus 计算所有提供的提交的最佳公共祖先,为n路合并做准备
- –independent 不是打印merge base,而是打印具有相同祖先的提交的最小子集。换言之,在给定的提交中,列出无法从任何其他方获得的提交。
- –is-ancester 检查第一个提交是否是第二个提交的祖先,如果是,返回0,如果不是则返回1,结果错误即返回非0非1的状态码;
- –fork-point
找到一个分支从另一个分支分叉的点。这不仅要寻找两个提交的共同祖先,还要考虑到的reflog,以查看导致的历史是否从分支的早期化身派生 - -a --all Output all merge bases for the commits, instead of just one.
更多详情请参考[官方文档](https://git-scm.com/docs/git-merge-base);