如何通过其编号(--count)获取 git commit hash

wha*_*are 3 git

我通过命令获得提交位置

git rev-list HEAD --count
Run Code Online (Sandbox Code Playgroud)

例如,输出是 1164。我想签出此提交号。我怎样才能做到这一点?我认为,需要获取此提交的哈希值并签出以按其哈希值提交。

Jam*_*s H 7

这是另一个解决方案:

git rev-list HEAD --reverse | nl | grep <your build number>
Run Code Online (Sandbox Code Playgroud)

git rev-list HEAD --reverse打印出从最旧到最新的所有提交哈希值。nl在每行前面加上行号(实际上是count)。最后,良好的grep过滤器只显示您想要的行。

您可以使用以下命令进一步将其细化为提交哈希awk

git rev-list HEAD --reverse | nl | grep <your build number> | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

或者使用 git 别名将其提升到一个新的水平:

git config --global alias.build-number '!f() { git rev-list HEAD --reverse | nl | grep $1 | awk '"'"'{print $2}'"'"'; }; f'
Run Code Online (Sandbox Code Playgroud)

别名用法:

git build-number <your build number>
Run Code Online (Sandbox Code Playgroud)

上面 git config 命令中的引用疯狂解释如下: https: //stackoverflow.com/a/1250279/320737