如何知道提交的分支名称

时间:2019-05-15 12:21:21

标签: git gitkraken

在GitKraken中,我们从一个分支报告另一个引用相同的提交。

问题:如果我们使用CTRL + F进行搜索,则很难检测到提交位于哪个分支。

是否可以通过提交来知道分支的名称?


我们有7个具有相同引用的提交 enter image description here

如果选择其中之一,则处于提交状态。 从这个角度来看,我不可能知道分支的名称。 enter image description here

5 个答案:

答案 0 :(得分:4)

尝试一下:

 git branch --contains <commit>

阅读:

Link

答案 1 :(得分:2)

对于提交$commit,找到恰好指向它的分支:

git for-each-ref refs/heads --format="%(refname:lstrip=2)" --points-at $commit

并找到可从中访问的分支

git for-each-ref refs/heads --format="%(refname:lstrip=2)" --contains $commit

答案 2 :(得分:1)

简而言之:不。

正如@RomainValeri在他的评论中所说:提交不“属于”任何分支。分支不过是指向提交的指针。可能有一百个分支可以到达一个提交,或者可能没有一个。

@MohammadAnsari建议的git命令git branch --contains <commit>将向您显示可从其进行提交的所有分支的列表。

关于GitKraken:您的问题没有立即解决的方法。如果提交在图表的下方,则很难确定它导致了哪个祖先提交。此外,没有git branch --contains <commit>做(或我不知道)的GitKraken命令。

也许您应该过分考虑具有相同名称的提交,或者重新考虑您的分支策略。您有几个长期分支机构吗?如果所有分支都将针对单个master收敛,那么这个问题将是微不足道的。

答案 3 :(得分:0)

如果知道提交ID,则可以找到它。 使用“ ctrl + f”,它将打开“搜索提交”对话框,您需要在其中输入提交ID。 按Enter键后,树形图将导航至该提交,您可以直观地看到其放置在哪个分支上。

答案 4 :(得分:0)

我绝对是你们所有人中对 git 不太了解的人,但是呢:

  1. 复制给定的提交哈希
  2. 在 git bash 中运行 git show [commit-hash]
  3. (长)输出的开头应该是这样的

enter image description here

显示在 origin/version-210627 的信息似乎显示了分支(在我的例子中是 version-210627)。