我需要一些帮助。有可能只显示一个提交ID吗?因为git log -3会显示从1到3的日志,我只想显示第3个。有什么可能的命令可以匹配吗?
我使用的命令是:
结果是
我只想显示1c76c5d。
我使用的命令是:
git log -3 --pretty=format:"%h"
结果是
ffbef87
cf0e073
1c76c5d
我只想显示1c76c5d。
git log -3 --pretty=format:"%h"
ffbef87
cf0e073
1c76c5d
git show
引用第三个父提交从当前提交(即距离HEAD
的第二个祖先)开始。此外,git show
接受与git log
相同的格式字符串:git show HEAD~2 --pretty=format:"%h" --no-patch
更好的方法是使用 rev-parse
plumbing命令 ,并使用 --short
选项输出缩写(7个字符)的提交 SHA-1:
git rev-parse --short HEAD~2
或者您也可以指定完整的提交 SHA-1 长度:
git rev-parse --short=4 HEAD~2
有一个工具可以做到这一点:
git log -3 --pretty=format:"%h" | tail -n 1
使用以下标记,您可以包括散列(而不是默认值)的n
个字符:
--abbrev=n
1) 让每个程序只做一件事情。为了完成新的任务,请重新构建,而不是通过添加新的“功能”使旧程序复杂化。
2) 预期每个程序的输出将成为另一个尚未知晓的程序的输入。不要在输出中混杂无关信息。严格避免列格式或二进制格式的输入。不需要交互式输入。
... [即]
- 编写能够很好地完成单一任务的程序。
- 编写程序以便它们能够互相协作。
自 Git 2.3.8 版起,您可以使用 --skip
选项:
git log -1 --skip 2 --pretty=format:"%h"
不确定 Git 的哪些早期版本支持 --skip
参数。
3 --pretty=format:"%h" --no-patch时,它会显示fatal: ambiguous argument 'HEAD3': unknown revision or path not in the working tree。 请使用'--'将路径与修订版本分开,像这样: 'git <command> [<revision>...] -- [<file>...]' - rkevx21head~2
是你的历史记录中第一个提交吗? - Enrico Campidogliogit show
还会输出与提交相关的差异(即_patch_),但在这种情况下我们对此不感兴趣。 - Enrico Campidoglio--no-patch
可以抑制git show
的差异输出。 - Enrico Campidogliogit rev-parse --short HEAD~1
而不是 2 来获取最新合并的主分支提交 ID。 - AhmFM