获取简短的Git版本哈希

Att*_* O. 330 git

有没有更简洁的方法来获取HEADGit 的短版本哈希?

我希望看到与我相同的输出:

 git log -n 1 | head -n 1 | sed -e 's/^commit //' | head -c 8
Run Code Online (Sandbox Code Playgroud)

我最初使用它来生成版本字符串,但这更好:

git describe --tags
Run Code Online (Sandbox Code Playgroud)

它将输出字符串,如0.1.12(标记提交)或0.1.11-5-g0c85fbc(标记后的五次提交).

Mar*_*air 615

试试这个:

git rev-parse --short HEAD
Run Code Online (Sandbox Code Playgroud)

该命令git rev-parse可以执行大量不同的操作,因此您需要仔细阅读文档才能发现这一点.

  • 您可以使用 git rev-parse --short=8 HEAD 来获取 GitLab 使用的 8 个字符长度。您还可以使用“git config core.abbrev 8”等命令将特定 git 存储库的“core.abbrev”设置为 8 [来源](https://git-scm.com/docs/git-rev-parse#文档/git-rev-parse.txt---shortlength) (20认同)
  • 该命令也适用于从其他来源(如`git log`)复制粘贴的长转ID,例如`git rev-parse --short 97dd2ae065771908ee9ae0fa08ccdb58b5a6b18f`返回`97dd2ae` (9认同)
  • 警告,这会返回 7 个字符的提交哈希(默认情况下),而许多地方(例如 gitlab)使用 8 个字符! (4认同)
  • 同样重要的是要知道,您提供给 `--short=n` 的数字只是一个_最小值_。它可能会返回更长的字符串,以保证哈希指向唯一的提交。来自[文档](https://git-scm.com/docs/git-rev-parse#Documentation/git-rev-parse.txt---shortlength):“[it]将对象名称缩短为唯一的前缀至少包含“length”字符”。 (4认同)
  • 它只适用于参考.您可以使用HEAD,标记名称,分支名称或纯哈希. (3认同)
  • 您可以执行相反的操作并通过执行以下```git rev-parse HEAD``从短提交哈希获取长提交哈希值 (2认同)

Kar*_*ldt 105

您可以使用任何您想要的格式 --pretty=format:

git log -1 --pretty=format:%h 
Run Code Online (Sandbox Code Playgroud)


San*_*eev 63

git log -1 --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

也会这样做.

git log --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

将列出具有缩写SHA-1校验和的日志条目.

  • 第二个正是我要找的!很容易记住,在日常生活中很有用。 (3认同)
  • 也适用于 `git log --pretty=oneline`,它与 `--oneline` 不同,否则打印完整大小的哈希值。 (3认同)

The*_*ger 36

查看Git提交短版本和Git提交消息的简单方法是:

git log --oneline
Run Code Online (Sandbox Code Playgroud)

请注意,这是简写

git log --pretty=oneline --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

  • --oneline 是最好的选择 (2认同)

Ste*_*haw 30

一个非常简单的方法是:

git describe --always
Run Code Online (Sandbox Code Playgroud)

  • 如果您严格要求短哈希则不好 - 因为这可以返回带注释的标签是否存在. (7认同)

小智 15

分支短哈希和最后评论:

git branch -v

  develop      717c2f9 [ahead 42] blabla
* master       2722bbe [ahead 1] bla
Run Code Online (Sandbox Code Playgroud)


Dow*_*eam 8

我有Git版本2.7.4,具有以下设置:

git config --global log.abbrevcommit yes
git config --global core.abbrev 8
Run Code Online (Sandbox Code Playgroud)

现在我做的时候:

git log --pretty=oneline
Run Code Online (Sandbox Code Playgroud)

我得到一个八位数的缩写提交ID:

ed054a38 add project based .gitignore
30a3fa4c add ez version
0a6e9015 add logic for shifting days
af4ab954 add n days ago
...
Run Code Online (Sandbox Code Playgroud)


vel*_*ity 7

那这个呢 :

git log --pretty="%h %cD %cn %s"  
Run Code Online (Sandbox Code Playgroud)

它显示了类似的内容:

674cd0d 2019 年 11 月 20 日星期三 12:15:38 +0000 Bob 提交消息

请参阅漂亮的格式文档