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

时间:2009-05-27 17:46:49

标签: git

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

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

如果我使用git-show-branch,我会以“友好”的形式获得修订列表,所以我觉得必须有办法......我找不到工具来做这件事。

2 个答案:

答案 0 :(得分:18)

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

例如:

srh@devo16:~/src/git <master>$ git name-rev 3cd7388
3cd7388 master~2

但是在我做了“git pull”之后,主人~2可能意味着别的东西。相比之下:

srh@devo16:~/src/git <master>$ git describe 3cd7388
v1.6.3.1-153-g3cd7388

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

答案 1 :(得分:3)

尝试git describe

$ git describe --all --contains 90de2680dc54c0d600b0694bd175bd09357a8dba
master~2