有什么方法可以获取指向 git 中特定提交的引用列表(包括标签、分支和远程)?
git show-ref | grep $(git rev-parse HEAD)
显示所有指向 HEAD
(当前签出的提交)的引用。
git show-ref
显示 git 存储库中的所有引用。
git show-ref | grep "SHA goes here"
显示指向提交 SHA 的所有引用。
人类可读的格式
对于最后一次提交(即 HEAD):
git log -n1 --oneline --decorate
或者指定特定的提交:
git log -n1 --oneline --decorate fd88
给出:
fd88175 (HEAD -> master, tag: head, origin/master) Add diff-highlight and icdiff
要仅获取标签/参考/遥控器,请将其传递给
sed
:
$ git log -n1 --oneline --decorate | sed 's/.*(\(.*\)).*/\1/'
HEAD -> master, tag: head, origin/master
为了获得奖励积分,请为此添加别名:
decorations = "!git log -n1 --oneline --decorate $1 | sed 's/.*(\\(.*\\)).*/\\1/' #"
仅使用管道。如果两个分支相同,则输出相同的 SHA,失败且无输出,否则退出代码 1。
git rev-parse A B |\
uniq |\
sed -n -e '${1p}' -e '2q 1'
rev-parse
2+ 分支uniq
只有独特的线条${1p}
如果最后一行和第一行,则打印2q 1
否则退出并退出代码 1q
。git for-each-ref --points-at=<commit> \
'refs/heads/**' 'refs/remotes/**' 'refs/tags/**'