【问题标题】:How to list all tags that contain a commit?如何列出所有包含提交的标签?
【发布时间】:2011-12-16 21:49:32
【问题描述】:

这个问题类似于How to list all tags pointing to a specific commit in git,但有一个区别:我希望在每个标签的树中搜索包含特定提交的所有标签,而不是标签本身标记的文件(在这种情况下,仅标记了 Makefile 更改)。

【问题讨论】:

  • 你不能标记一个特定的文件——标记只指向提交。您可能希望使用您真正想要解决的问题的更多详细信息来编辑您的问题。
  • 注意:在 Windows 上,如果你想让git tag --contains崩溃,请确保使用 git 2.0.x (2014)。见my answer below

标签: git


【解决方案1】:
git tag --contains <commit>

【讨论】:

  • 我试过这个。但是如果标签只包含一个文件,我相信它只会搜索那个文件。它不会搜索树。此外,我尝试过的存储库是如此之大,git 被保释并获得了 SIGKILL'ed。
  • 标签不包含文件。它们只是提交的标记。鉴于此,我认为您的反对没有意义。
  • 由于在这种情况下内存不足,它不能向我显示提交。你知道我该如何克服吗?
  • 有没有办法针对远程标签执行此操作?与分支类似:git branch -r --contains &lt;commit&gt;
【解决方案2】:

请注意,您需要 git 2.0.x(2014 年第三季度)才能列出某个提交的所有标签如果您有大型 repo

commit cbc60b6Jean-Jacques Lafay (lanfeust69)

git tag --contains: 避免堆栈溢出

在大型仓库中,contains(commit, commit_list) 的递归实现可能会导致堆栈溢出。用循环替换递归来修复它。

这个问题在 Windows 上比在 Linux 上更明显,在 Linux 上默认堆栈受到更多限制。

另见this thread on the msysGit list

【讨论】:

  • 没有双关语? ;-)
  • @MikeSchinkel 嗯……至少不是一个故意的
猜你喜欢
  • 2021-03-15
  • 1970-01-01
  • 2019-04-04
  • 2011-05-31
  • 1970-01-01
  • 2015-03-30
  • 2013-04-24
  • 2010-11-28
相关资源
最近更新 更多