在Git中,有没有办法获得任意提交的"友好"名称?

mip*_*adi 19 git

在Git中,有很多方法可以引用提交,包括完整的SHA哈希或哈希的缩写形式(例如,前6个字符左右).您还可以使用"友好"语法命名提交,例如HEAD,HEAD ^,HEAD ^^,HEAD~3等.

给定SHA哈希表单中的任意提交,Git中是否有工具为所述提交找到"友好"名称?

如果我使用git-show-branch,我会以"友好"的形式获得一份修订清单,所以我觉得必须有办法...我找不到工具来做到这一点.

ara*_*nid 19

您可以使用"git name-rev"来获取您要询问的表单.该形式的一个问题是,相对于分支,它不是永久名称.所以另一种选择是"git describe",它根据给定提交的标记前面多远来生成一个替代的友好名称.

例如:

srh@devo16:~/src/git <master>$ git name-rev 3cd7388
3cd7388 master~2
Run Code Online (Sandbox Code Playgroud)

但是在我做了"git pull"之后,高手~2可能意味着别的东西.相比之下:

srh@devo16:~/src/git <master>$ git describe 3cd7388
v1.6.3.1-153-g3cd7388
Run Code Online (Sandbox Code Playgroud)

现在"v1.6.3.1-153-g3cd7388"是一个永久名称.当然,它仍然有点长(尽管你可以通过指定"--abbrev = 4"来缩短最后的哈希位),但它传达了版本1.6.3.1之后3cd7388是153次更改.

  • 在这种情况下,请注意git name-rev的"--stdin"选项:您应该能够直接将git log输出管道输入它. (2认同)