在Git中,有什么方法可以获得任意提交的“友好”名称吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (23)

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

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

如果我用git-show-branch,我得到了一份“友好”形式的修订清单,所以我觉得一定有办法...我只是找不到工具来做。

提问于
用户回答回答于

可以使用“gitname-rev”来获取您所询问的表单。这种形式的一个问题是,相对于一个分支,它不是一个永久的名称。因此,另一种方法是“gitDescription”,它根据给定提交的标记的距离来生成另一个友好名称。

例如:

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

但是当我做了“git拉”之后,2可能意味着其他的事情。相比之下:

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

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

用户回答回答于

试一试git describe:

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

扫码关注云+社区