如何查找Git中两个分支首次分叉的提交节点?
查找Git分支首次分叉的初始提交
由于你后续多次将release分支合并回develop,默认的git merge-base只会返回最后一次合并操作的共同祖先,无法获取最初创建release时的分叉节点(提交XYZ)。以下是两种可行的解决方法:
方法一:通过命令行精准定位
执行以下命令,列出release分支上所有未被合并到develop的提交(按时间正序排列):
git log --oneline release --not develop --reverse
返回结果中的第一个提交,其父提交即为你要找的初始分叉节点XYZ。
如果release的所有提交都已合并到develop,则改用这条命令:
git log --oneline --ancestry-path develop..release --reverse
找到输出结果里最早的提交,它的父节点就是初始分叉点XYZ。
方法二:可视化分支历史查找
执行图形化展示分支历史的命令:
git log --graph --oneline --decorate develop release
在输出的图形中,release分支线条起始的那个提交,就是最初的分叉节点XYZ。
另外,也可以通过分支操作日志追溯:
git reflog show release
日志中会包含类似XYZ checkout: moving from develop to release的记录,其中的XYZ即为目标提交哈希。
内容的提问来源于stack exchange,提问作者Mark VY
相关产品推荐
相关产品推荐

