如何获取指向 git 中提交的所有引用?

问题描述 投票:0回答:4

有什么方法可以获取指向 git 中特定提交的引用列表(包括标签、分支和远程)?

git branch commit git-remote git-tag
4个回答
15
投票

git show-ref | grep $(git rev-parse HEAD)
显示所有指向
HEAD
(当前签出的提交)的引用。

git show-ref
显示 git 存储库中的所有引用。

git show-ref | grep "SHA goes here"
显示指向提交 SHA 的所有引用。


5
投票

人类可读的格式

对于最后一次提交(即 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/' #"

0
投票

仅使用管道。如果两个分支相同,则输出相同的 SHA,失败且无输出,否则退出代码 1。

git rev-parse A B |\
 uniq |\
 sed -n -e '${1p}' -e '2q 1'
  • rev-parse
    2+ 分支
  • uniq
    只有独特的线条
  • ${1p}
    如果最后一行和第一行,则打印
  • 2q 1
    否则退出并退出代码 1
    可能是 GNU 特定的。如果不起作用,请尝试
    q

0
投票
git for-each-ref --points-at=<commit> \
    'refs/heads/**' 'refs/remotes/**' 'refs/tags/**'
© www.soinside.com 2019 - 2024. All rights reserved.