gpt4 book ai didi

git - 如何从 Git 提交哈希中获取所有符号名称?

转载 作者:行者123 更新时间:2023-12-03 17:06:11 25 4
gpt4 key购买 nike

如果 Git 提交哈希有多个与之关联的标签和/或多个分支的头部,是否有一种列出所有这些标签的好方法?
我已经查看了 git name-rev 的选项, git describe , 和 git symbolic-ref但还没有找到任何似乎可以做我想做的选择。令人沮丧的是,git name-rev有一个 --tags只列出标签的选项,但没有明显的机制来只列出分支(而且 git name-rev 对我来说似乎总是喜欢标签而不是分支)。

$ git checkout -b branch1
$ git checkout -b branch2
$ git tag tag1
$ git tag tag2
$ git name-rev HEAD
HEAD tags/tag1
$ git describe --all HEAD
HEAD tags/tag1
$ git symbolic-ref HEAD
refs/heads/branch2
要将提交哈希映射到其所有符号名称,我是否需要运行 git tag --listgit branch --all --list然后运行 ​​ git rev-parse所有的结果?

最佳答案

多亏了 git for-each-ref ,应该可以实现您想要的命令:

git for-each-ref --points-at=HEAD
完成示例 session :
$ git init
$ touch a
$ git add a
$ git commit -m a
[master (root-commit) eb3222d] a
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
$ git checkout -b branch1
Switched to a new branch 'branch1'
$ git checkout -b branch2
Switched to a new branch 'branch2'
$ git tag tag1
$ git tag tag2
$ git tag -a tag3 -m "annotated tag"
$ git for-each-ref --points-at=HEAD
eb3222db1821633a54ccd0a6434e883c4cb71b98 commit refs/heads/branch1
eb3222db1821633a54ccd0a6434e883c4cb71b98 commit refs/heads/branch2
eb3222db1821633a54ccd0a6434e883c4cb71b98 commit refs/heads/master
eb3222db1821633a54ccd0a6434e883c4cb71b98 commit refs/tags/tag1
eb3222db1821633a54ccd0a6434e883c4cb71b98 commit refs/tags/tag2
0dbba96f519c2ad1b470f97171230004addff896 tag refs/tags/tag3

关于git - 如何从 Git 提交哈希中获取所有符号名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62504798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com