我想知道在分支 dev
中第100个提交的相关commit-id
。(例如:git rev-list --reverse --branches=dev --date-order --count <commit-id> == 100
):
最终获取到的第100个提交是 1f345e80fba518c72dec7f2e02da5da12be5810f
:
$ git rev-list --reverse --branches=dev --date-order HEAD | head -100 | tail -1
1f345e80fba518c72dec7f2e02da5da12be5810f
$ git rev-list --reverse --branches=dev --date-order HEAD | nl | grep 100
100 1f345e80fba518c72dec7f2e02da5da12be5810f
$ git rev-list --reverse --branches=dev --date-order HEAD | awk '{print NR"\t"$0}' | grep -E ^100
100 1f345e80fba518c72dec7f2e02da5da12be5810f
然而,当我尝试验证此提交ID (1f345e80fba518c72dec7f2e02da5da12be5810f
) 的版本号时,结果显示:版本号为98!
$ git rev-list --reverse --branches=dev --date-order --count 1f345e80fba518c72dec7f2e02da5da12be5810f
98
$ git rev-list --reverse --branches=dev --date-order 1f345e80fba518c72dec7f2e02da5da12be5810f | nl | tail -1
98 1f345e80fba518c72dec7f2e02da5da12be5810f
所以我试图找出缺失的两个提交:
$ git rev-list --reverse --branches=dev --date-order HEAD | head -100 | nl > commit-100.log
$ git rev-list --reverse --branches=dev --date-order 1f345e80fba518c72dec7f2e02da5da12be5810f | head -100 | nl > commit-98.log
$ diff -y commit-100.log commit-98.log
90 63546ce0207cdd6ade353ea05c466d0210af1d29 | 90 75a8fd85043908049e11595aaa2c988282fa1a0c
91 75a8fd85043908049e11595aaa2c988282fa1a0c | 91 c1bbb33cd0241c16dde2579696c08ed2eb146cdf
92 c1bbb33cd0241c16dde2579696c08ed2eb146cdf | 92 28e9bbc06cb3036bce4cce71f5acf4b27835e9a0
93 28e9bbc06cb3036bce4cce71f5acf4b27835e9a0 | 93 7b1d0caddc6218eb982d27c1df27c885bc84204c
94 7b1d0caddc6218eb982d27c1df27c885bc84204c | 94 945fd63a256391e72e55e8ac98c449c1473c1e5e
95 945fd63a256391e72e55e8ac98c449c1473c1e5e | 95 0ff3f47eb8dc40815ac7effdb2172e5d69dd0e10
96 0ff3f47eb8dc40815ac7effdb2172e5d69dd0e10 | 96 ac90a7b2a371ff7a0fad0475d94691663aceaa1b
97 ac90a7b2a371ff7a0fad0475d94691663aceaa1b | 97 1a0e26b517f88870fed0cf5f346495b67c29463a
98 937807239dd706f3bf124dd4d3266c71fd8071f4 | 98 1f345e80fba518c72dec7f2e02da5da12be5810f
99 1a0e26b517f88870fed0cf5f346495b67c29463a <
100 1f345e80fba518c72dec7f2e02da5da12be5810f <
显然,2个缺失的提交ID是:
90 63546ce0207cdd6ade353ea05c466d0210af1d29
98 937807239dd706f3bf124dd4d3266c71fd8071f4
根据
git show <commit-id>
的结果,没有发现任何异常。这两个提交都是由同一个人提交的。但是这个人在前100次提交中提交了10次。这是否是一个
git rev-list
的问题?
1.0.0
;我想在版本中添加代码信息;这意味着:1.0.0
->1.0.0.<code_info>
。因此,如果某个软件包出现问题,我可以追溯到相关的源代码。我使用rev-number作为<code_info>
,因为rev-number是连续且易于理解的。例如,1.0.0.100
表示该软件包是从第100次提交构建的... - Marslogit tag -a
创建带注释的版本标签,然后使用git describe
基于这些标签创建易读的名称。 - torek