Seb*_*ian 8 git gradle gitlab-ci
我发现在 gradle 构建期间将 git 修订号添加到我的项目版本中是一个超级聪明的想法,例如major.minor.commit. 这是通过以下方式实现的
git rev-list --count HEAD
Run Code Online (Sandbox Code Playgroud)
现在我使用 gitlab ci ,它只获取最新的 50 个提交:
Fetching changes with git depth set to 50...
Run Code Online (Sandbox Code Playgroud)
所以我最终得到的版本号始终是 50。长话短说,如何使用浅 git 克隆获得正确的计数?
(注意:这仅涉及计算计数,而不是这是否是一个好主意。至于这是否是一个好主意:考虑如果您有存储库的三个副本,一个来自某个中心点,第二个来自用户 A 的副本,会发生什么用户 A 添加了 1 个提交,第三个是用户 B 添加了 1 个提交。用户 A 的存储库中的计数是多少?用户 B 的存储库中的计数是多少?)
\n\n你不知道。
\n\nGit 无法查看其他存储库的提交(好吧,除非您使用git fetch并且它们为您的 Git 提供这些提交,以便您的 Git 填充到其自己的存储库\xe2\x80\x94 中,但此时,这些不是其他存储库的提交提交:它们现在是你的了,或者更准确地说,它们现在是共享的)。
该git rev-list命令枚举\xe2\x80\x94或使用--count,仅计算存储库中的\xe2\x80\x94提交。因此,您需要一个足够深的存储库来统计您关心的所有提交,即返回根的所有提交。所以不要使用浅存储库。
请注意,完整的存储库最初可能需要相当长的时间才能设置,但之后,git fetch从上游只能获取新的提交,这通常最多需要几秒钟。
| 归档时间: |
|
| 查看次数: |
1787 次 |
| 最近记录: |