【发布时间】:2021-11-26 11:39:13
【问题描述】:
在我的 gitlab CI 中,默认情况下会获取最后 50 个提交。要更改这一点,我可以使用 extra flag 并且额外的标志接受 git fetch 命令的所有选项。
比如我可以改成
variables:
GIT_FETCH_EXTRA_FLAGS: --depth 100
这样可以获取最后 100 个提交。
但我想获取自上次发布以来的所有提交(在我的情况下总是有一个标签)。在我的管道中,我已经在做类似的事情了
- tag=$(git describe --tags --abbrev=0)
- base=$(git rev-parse $tag)
获取带有最后一个标签的提交,我在管道中处理它。
是否可以动态设置深度,或者是否有其他选项可以使用最后一个标签?因为如果我设置了一个“硬编码”深度值并且在某个时间会有更多的提交,那么管道就会失败。
【问题讨论】:
-
简短回答:没有。
--shallow-since选项带有日期,--depth带有数字,仅此而已。 -
@torek 但我可以像
git rev-list 33b14c62b...33ad6cecf | wc -l这样计算深度。难道不能以这样的方式做到这一点吗?虽然我不确定,如果我能在这个variable部分计算任何东西...... -
您可以计算克隆所需的深度,但要做到这一点,您首先需要一个足够深的克隆来计算必要的深度。在这种情况下……你为什么要克隆?
标签: git gitlab gitlab-ci-runner