干净利落地获取git分支的abbrev-commit

emk*_*emk 4 git

我需要为特定的git分支提取缩写的提交名称.这些通常是7位十六进制数字,并且它们被某些系统(包括Heroku的COMMIT_HASH环境变量)用于标识特定提交.

获得缩写提交名称有几种丑陋的方法,包括:

$ git log -1 --oneline | awk '{ print $1 }'
d4377e3
$ git describe --always --match ''
d4377e3
Run Code Online (Sandbox Code Playgroud)

是否有更清洁的方法来获得这个价值?

gah*_*ooa 8

好问题.我相信正在寻找git-rev-parse,一个低级别的git命令.

[jason@star Data]$ git-rev-parse --short github/master
8b81a38
Run Code Online (Sandbox Code Playgroud)

此外,如果您想要在当前分支上进行最新提交,只需将其HEAD作为参数传递.

[jason@star Data]$ git-rev-parse --short HEAD
8b81a38
Run Code Online (Sandbox Code Playgroud)

  • 为了*烦人*迂腐,`git-rev-parse`是一个瓷器命令.出于脚本目的,应该使用管道命令`git rev-list -n1 -abbrev-commit HEAD`.但没关系;) (4认同)