看看git分支(或标签)指向给定的提交哈希?

时间:2016-02-16 23:10:25

标签: git

我可以通过运行来实现我想要的效果:

git log -1 --decorate --oneline <commit hash>

并读取标签名称和分支名称。

有没有办法直接获取这些信息?

基本上我想要的是反向操作:

git rev-parse <tag or branch>^{commit}

3 个答案:

答案 0 :(得分:3)

git branch --contains <commit>
git tag --contains <commit>

修改:要查找完全指向哈希abc123的引用,请执行以下操作:

git show-ref | awk '/^abc123/ {print $2}'

答案 1 :(得分:2)

如果你没有git 2.7+,你仍然可以使用git for-each-ref来查找指向特定提交的引用,方法是过滤for-each-ref输出:

git for-each-ref | grep ^1234567
例如

。 [编辑:这与using git show-ref基本相同,只是对其目标的后续标记需要更多输入。 for-each-ref输出适用于脚本,所以如果你想编写一个脚本,使用它可能比使用git show-ref更好。]

答案 2 :(得分:1)

Git 2.7.0为各种子命令引入了--points-at标志:

git for-each-ref --points-at <commit> --format '%(refname)'
git branch --points-at <commit>
git tag --points-at <commit>