git如何找到分支源自的提交哈希

时间:2010-10-22 16:26:42

标签: git git-branch

假装我从我的主分支分支到主题分支,然后我在我的主题分支上做了一些提交。是否有一个命令告诉我主分支上的提交哈希来自我的主题分支?

理想情况下,我不必知道我做了多少次提交(试图避免使用HEAD ^ 5)。

我用谷歌搜索过,似乎无法找到答案。谢谢!

3 个答案:

答案 0 :(得分:63)

您可以使用git reflog show --no-abbrev <branch name>。它将输出对分支所做的所有更改,包括它的创建,例如(我从xxx分支创建了分支master):

bdbf21b087de5aa2e78a7d793e035d8bd9ec9629 xxx@{0}: branch: Created from master

请注意,这不太可靠,因为reflog记录可能会过期(默认情况下为90天),似乎没有100%可靠的方法来执行此操作。

答案 1 :(得分:43)

使用git merge-base master your-branch找到两个分支(通常是分支点)之间的最佳共同祖先。

答案 2 :(得分:0)

执行此操作的唯一100%可靠的方法是在创建分支时标记分支的开始。如果您将提交合并到新分支的分支,则接受的答案将不起作用。例如,如果您要创建一个稳定的发行分支,并希望将在发行测试期间找到的修订重新合并回master,则有时可以这样做。一件常见的事情。如果您知道您永远不会将提交从新分支合并回原始分支,那么接受的答案将起作用。