【问题标题】:Can i know the revision number of a commit?我可以知道提交的修订号吗?
【发布时间】:2023-03-24 16:27:01
【问题描述】:

我可以通过svn info之类的命令查看svn中的修订号,但是在git中我只能看到sha对象名称,有没有办法知道已经提交了多少修订?

【问题讨论】:

  • 请注意,不能可靠地使用“提交编号”来引用 git 的提交。但是,任何唯一的 SHA 哈希开始字符集都可以。因此,如果问题的目的是了解您的速度,请继续计算它们。如果您想指向特定的提交(例如,在您的问题跟踪器中),请使用哈希的前几个字符(我喜欢 8,但也可以使用更短的)。

标签: git


【解决方案1】:

git describe 将是获取此类信息的最接近的方式,正如 other SO question 中所建议的那样

[torvalds@g5 git]$ git describe parent
v1.0.4-14-g2414721

即我的“父”分支的当前负责人基于v1.0.4,但由于它还有一些提交,describe 添加了额外提交的数量(“14”)和提交本身的缩写对象名称(“2414721”)。

额外提交的数量是由“git log v1.0.4..parent”显示的提交数量。
哈希后缀是“-g+ 7-char父级提示提交的缩写(即2414721b194453f058079d897d13c4e377f92dc6)。

请注意,Git 2.22(2019 年第二季度)修改了最后一句,因为虽然最小值为 7 个字符,但明确的长度可以更长。

git describe documentation 现在说:

hash 后缀是“-g”+unambiguous 是tip commit 的缩写 父母的(2414721b194453f058079d897d13c4e377f92dc6)。

参见Philip Oakley (PhilipOakley)commit ffea024(2019 年 4 月 6 日)。
(由 Junio C Hamano -- gitster -- 合并到 commit 18c3ae0,2019 年 4 月 25 日)


当然,你可以随时count your commits

git shortlog -s -n
  135  Tom Preston-Werner
  15  Jack Danger Canty
  10  Chris Van Pelt

-s 选项将所有提交消息压缩为提交次数,-n 选项按提交次数对列表进行排序。

此命令对changelogs 也很有用,因为您可以轻松转储每个人所做的所有更改。
还有其他一些简洁的选项:
-e 将附加电子邮件,您可以使用 -w 控制列宽。
查看manpage 了解更多信息。


使用 Git 2.33(2021 年第三季度),您可以了解更多关于 git describe 确切输出格式的信息:

参见Anders Höckersten (ahockersten)commit bfe35a6(2021 年 5 月 17 日)。
(由 Junio C Hamano -- gitster -- 合并于 commit d8c6dc2,2021 年 6 月 10 日)

describe-doc:明确缩写的默认长度

签字人:Anders Höckersten

明确 git describe 中用于提交的缩写形式的默认长度。

在 Git 2.11.0 中修改了该行为,但未更新文档以阐明新行为。

git describe 现在包含在其man page 中:

而不是使用默认的十六进制数字(即 将根据存储库中的对象数量而有所不同 默认为 7) 的缩写对象名称,使用 <n> 数字,或 构成唯一对象名称所需的位数。

git describe 现在包含在其man page 中:

哈希后缀是“-g”+提示提交的明确缩写 父母的(2414721b194453f058079d897d13c4e377f92dc6)。
这 缩写的长度随着存储库的增长而缩放,使用 存储库中对象的近似数量和一些数学运算 围绕生日悖论,默认为至少 7 个。

【讨论】:

    猜你喜欢
    • 2013-11-23
    • 2011-06-25
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    相关资源
    最近更新 更多