11

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

4

3 回答 3

9

git show-ref | grep $(git rev-parse HEAD) shows all refs that point to HEAD, the currently checked out commit.

git show-ref shows all refs in your git repo.

git show-ref | grep "SHA goes here" shows all refs that point to the SHA of a commit.

于 2013-06-26T19:30:01.727 回答
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/' #"
于 2016-09-21T11:53:42.370 回答
0

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

git rev-parse A B |\
 uniq |\
 sed -n -e '${1p}' -e '2q 1'
  • rev-parse2+ 分支
  • uniq只有独特的线条
  • ${1p}如果最后一行和第一行,打印
  • 2q 1else quit with exit code 1
    可能是 GNU 特定的。q如果它不起作用,请尝试。
于 2021-12-26T10:04:19.930 回答