人类 readable/comparable git 更改 ID

Human readable/comparable git change IDs

一些版本控制系统,例如 Perforce,将 CL 保持为简单整数,因此在同一分支上查看两个不同的 CL,很容易理解哪个 CL 先合并。但是,在 Git 的情况下,一个 CL/ short CL 是一个长的十六进制字符串,这甚至不是人眼可以轻易比较的。有什么办法可以解决这个问题吗?

不,git 的 SHA-1 散列是一个 40 个字符的字符串。它是根据文件的内容计算的。 git olny 将 SHA-1 存储在数据库中。所以它对人眼来说是不可读的。

如果你想查看git的历史记录,git log --oneline --decorate --graph --all是清楚的。

恐怕不会。系统的分布式特性排除了很好的单调递增 "revision number"。如果您和地球另一端的其他人决定同时提交(而不是推送)补丁,谁是版本 n,谁是 n+1?只有当有一个可以分配修订号的中央服务器时,这种同步才有可能。这是分发的代价。

然而,虽然没有技术解决方案,但有社会解决方案。好的分支名称、适当的标记可以帮助您了解项目的进展情况。 git branch --merged--no-merged 将为您详细说明哪些分支已合并,哪些未合并。