检查git标签是否是某个父或子

时间:2017-11-09 10:12:10

标签: git git-tag

有没有办法找出标签是儿童还是父母(不是直接的孩子或父母)?

想象一下以下的git历史:

a467066 - (tag: child-2, master) feature 4
2028351 - (tag: child-1) feature 3
a7a6364 - (HEAD) feature 2
3772445 - (tag: parent-1) feature 1
5a01bfa - (tag: parent-2) initial commit

我的HEAD位于中间变更集(“功能2”)中,我想知道标记是否是当前变更集的任何子项。因此,对于child-1child-2我需要true,检查标记parent-1parent-2或任何not-existing将返回false

1 个答案:

答案 0 :(得分:1)

  1. git tag --contains HEAD

    它列出了HEAD

  2. 后代的所有标记
  3. git merge-base <tag> <HEAD>

    如果它返回HEAD的提交,则tagHEAD的后代。

  4. git merge-base --is-ancestor <tag> <HEAD>

    如果tagHEAD的祖先,则命令的退出状态为0。