参考 Git 分支起始提交

22

我正在尝试查找如何从脚本中引用分支起始提交。我的意思是分支分叉的提交sha。

此外,我希望它适用于从svn存储库创建的历史记录。

这篇文章仅提供了存储库创建的第一个提交,而不是特性分支的起始提交。

1个回答

27

你需要的命令是 merge-base:

git merge-base master feature-branch

将打印出这两个分支的最佳共同祖先,即它们分叉的地方。(该 文档 有很多细节图像可以澄清一些有趣的情况)

另一个小提示是你可以添加 --fork-point 合并基础标记来自动包含名称为 feature-branch 的内容,详见 此答案.


2
请注意,如果您在分支和主干之间进行了合并,则将返回该合并的父级而不是“原始”分支点。虽然我不确定您是否会得到更好的答案。 - Andrew Aylett
2
@Andrew:这取决于具体的使用情况,但通常这就是你想要的,而不是原始的那个。如果你真的想要原始的那个,你可以使用“-a/--all”选项,取第一个而不是最后一个。 - Cascabel
非常有帮助,谢谢!它会导致一些有用的东西,比如 git difftool \git merge-base master HEAD``。 - Tim D
为什么需要指定另一个分支?问题是要找到当前分支的起始提交。这只能是在创建时的1个提交... - jaques-sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接