git log仅显示一个提交ID

我需要一些帮助。 可能只显示一个提交ID? 由于git log -3显示1-3的日志,所以我只想显示3。什么可能的命令会匹配呢?

我使用命令

       git log -3 --pretty=format:"%h"

结果是

       ffbef87
       cf0e073
       1c76c5d

我只想显示1c76c5d。

rkevx21 asked 2020-01-02T05:40:19Z
3个解决方案
54 votes

您可以使用--short从当前提交中引用第三个父对象(即HEAD中的第二个祖先)。 另外,git show接受与git log相同的格式字符串:

git show HEAD~2 --pretty=format:"%h" --no-patch

更新(2016-12-01)

更好的方法是将--short选项和2684454274125530530112选项一起使用来输出缩写(7个字符)的提交ID:

git rev-parse --short HEAD~2

或者,您也可以指定提交ID的确切长度:

git rev-parse --short=4 HEAD~2
Enrico Campidoglio answered 2020-01-02T05:41:02Z
6 votes

有一个用于此的工具:

git log -3 --pretty=format:"%h" | tail -n 1

您可以使用以下标志包括哈希的n字符(而不是默认字符):

--abbrev=n 

Unix哲学的相关部分

1)让每个程序做好一件事情。 要完成一项新工作,请重新构建而不是通过添加新的“功能”使旧程序复杂化。

2)期望每个程序的输出都将成为另一个程序(尚不为人所知)的输入。 不要将多余的信息弄乱。 避免严格使用列或二进制输入格式。 不要坚持交互式输入。

...   [即]

  • 编写可以做一件事并且做得很好的程序。
  • 编写程序以协同工作。

[https://zh.wikipedia.org/wiki/Unix_philosophy]

DylanYoung answered 2020-01-02T05:41:57Z
5 votes

由于版本至少为git 2.3.8,因此可以使用--skip选项:

   git log -1 --skip 2 --pretty=format:"%h"

不确定哪个早期版本的git支持--skip

Andy answered 2020-01-02T05:42:21Z
translate from https://stackoverflow.com:/questions/31448445/git-log-show-one-commit-id-only