gpt4 book ai didi

git - 如何查找 git SHA 是否指向分支 HEAD?

转载 作者:IT王子 更新时间:2023-10-29 00:53:20 25 4
gpt4 key购买 nike

为了避免在使用(python)脚本 check out 某个 git SHA 时不必要地分离 HEAD,我想 check out 一个分支,如果该 SHA 恰好是分支的当前 HEAD。

理想情况下,我想为 git 提供一个 SHA,如果 SHA 在分支的当前提示上,它会返回一个分支名称,否则会出错。

git describe --all --exact-match <SHA> 几乎 是我所需要的,只是它主要针对标签,所以如果一个分支一个标签指向我的 SHA(这经常发生在我们的发布分支中,例如),只给出了标签。这没有用,因为 check out 标签会导致分离的 HEAD(即使分支指向相同的 SHA)。

注意,我不想做 git branch --contains - 我不需要知道哪些分支包含我的提交。

如果没有像git describe这样的命令,仅针对分支机构,我知道我可以通过 git show-ref 将我的 SHA 与分支机构 SHA 进行交叉检查.不过,这不是最优雅的解决方案。

我也可以做 git name-rev --name-only <hash> ,但我必须手动检查 ~ 的输出字符,如果在某处有一个 git 命令来做同样的事情,这会让人感觉不雅。

最佳答案

你可以尝试这样的事情:

git for-each-ref --format="%(refname:short) %(objectname)" 'refs/heads/' |
grep SHA1 | cut -d " " -f 1

这应该会为您提供当前处于修订版 SHA1 的分支列表。

关于git - 如何查找 git SHA 是否指向分支 HEAD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19100663/

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