为了账号安全,请及时绑定邮箱和手机立即绑定

如何列出包含给定提交的分支?

如何列出包含给定提交的分支?

隔江千里 2019-06-20 10:39:49
如何列出包含给定提交的分支?如何查询git以找出哪些分支包含给定的提交?GITK通常会列出分支,除非有太多的分支,在这种情况下,它只是说“许多(38)”或类似的东西。我需要知道完整的列表,或者至少是某些分支是否包含提交。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

git-分支手册页:

 git branch --contains <commit>

只列出包含指定提交的分支(如果未指定,则为头)。暗示--list.


 git branch -r --contains <commit>

列表远程跟踪分支(如上文所述)用户3941992回答下面是“与远程分支有直接关系的本地分支”。


也见此准备好文章。

这个--contains标记将确定某个提交是否已被引入到您的分支中。也许您已经从您认为已经应用过的修补程序中获得了COMMIT SHA,或者您只是想检查一下您最喜欢的将内存使用率降低75%的开源项目是否已经提交了。

$ git log -1 tests
commit d590f2ac0635ec0053c4a7377bd929943d475297
Author: Nick Quaranto <nick@quaran.to>
Date:   Wed Apr 1 20:38:59 2009 -0400

    Green all around, finally.

$ git branch --contains d590f2
  tests
* master

注:如果提交位于远程跟踪分支,添加-a期权.
(如米希尔B评论意见以下)

git branch -a --contains <commit>

MatrixFrog注释,它只显示哪些分支包含精确性承诺。
如果您想知道哪些分支包含“等效”提交(即哪些分支有精心挑选的提交),则git cherry:

因为git cherry 比较变更集而不是提交id(SHA 1),你可以用git cherry若要确定您在本地进行的提交是否已应用,请执行以下操作<upstream>在不同的提交ID下。
例如,如果你给补丁喂食,就会发生这种情况。<upstream>通过电子邮件而不是直接推或拉提交。

           __*__*__*__*__> <upstream>
          /
fork-point
          \__+__+__-__+__+__-__+__> <head>

(在这里,标记为“-不会出现在git cherry,意味着它们已经存在于<upstream>.)


查看完整回答
反对 回复 2019-06-20
?
皈依舞

TA贡献1851条经验 获得超3个赞

你可以跑:

git log <SHA1>..HEAD --ancestry-path --merges

从输出中最后提交的注释中可以找到原枝名字,姓名

例子:

       c---e---g--- feature
      /         \
-a---b---d---f---h---j--- master

git log e..master --ancestry-path --merges

commit h
Merge: g f
Author: Eugen Konkov <>
Date:   Sat Oct 1 00:54:18 2016 +0300

    Merge branch 'feature' into master


查看完整回答
反对 回复 2019-06-20
  • 2 回答
  • 0 关注
  • 818 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信