gpt4 book ai didi

git - 获取漂亮的 git rev 名称

转载 作者:行者123 更新时间:2023-12-04 05:53:54 37 4
gpt4 key购买 nike

所以我知道这个问题已经被问了很多,但我没有找到任何合适的答案。我希望在我的提示中显示当前 git rev 的名称,但以一种漂亮的方式:如果我在一个分支上,我想要分支的名称;如果它不是分支,我希望在我的提示中使用相对名称(即 master~2)。

起初,我使用的是类似 what you can see here 的东西。 .效果很好:我有分支的名称,或 rev SHA1 号。然后我转向了一个基于 git name-rev 的方法。 ,起初很好,但后来我注意到名称有时会混淆: merge 后 master进入登台,在两个分支上我都有 master在我的提示中。鉴于我对这个的依赖程度,我不能拥有这个。但是有master~2而不是 SHA1 数字真的很棒。

所以我希望有一种方法可以将这两种方法结合起来。如果也可以显示标签名称,我会接受它(尽管我不经常使用它们 - 还)。最重要的是只有 git 命令,而不是查找 git 内部文件——它们可能会在某个时候改变。

谢谢阅读!

最佳答案

取自 zsh-git 存储库:https://github.com/jcorbin/zsh-git/blob/master/functions/zgitinit#L70

name=$(git symbolic-ref -q HEAD)
if [ $? -eq 0 ]; then
if [[ $name == refs/(heads|tags)/* ]]; then
name=${name#refs/(heads|tags)/}
fi
else
name=$(git name-rev --name-only --no-undefined --always HEAD)
if [ $? -ne 0 ]; then
return 1
elif [[ $name == remotes/* ]]; then
name=${name#remotes/}
fi
fi

您也可以考虑使用 zsh :)

关于git - 获取漂亮的 git rev 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9752619/

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