首页/开发/Git 与协作速查/CI 浅克隆与按需加深
进阶与大仓实践69 条

CI 浅克隆与按需加深

流水线常以 depth=1 起步:只取最新提交;依赖历史信息(版本号、变更日志、diff 范围)的任务需要显式加深或切换完整克隆。

Git 与协作速查开发更新于 2026-10-12
浅克隆git clone --depth 1 / fetch-depth: 1
需要标签fetch-depth: 0 或 git fetch --tags --depth=1
需要 diff确保比较基线在本地存在,否则先 fetch 对应引用

按需加深示例

按需加深示例
git clone --depth 1 https://example.com/app.git
cd app
git fetch --deepen=50 origin main
git diff --stat origin/main~20..HEAD
把「本次流水线需要的最小历史」写清楚(如最近 20 个提交),比统一全量克隆更省时间。

易错点

  • 浅克隆里 git describe 与 merge-base 结果不完整,版本号可能算错
  • 缓存了浅克隆又更换基分支时,本地引用缺失会导致 diff 失败

数据来源与参考

  • Git 官方文档:git-clone(--depth)
  • Git 官方文档:git-fetch(--deepen)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌