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

浅克隆的加深与补全

浅克隆(--depth)只有部分历史:git fetch --deepen=N 追加 N 层,git fetch --unshallow 取回全部历史;需要标签或 blame 时按需补。

Git 与协作速查开发更新于 2026-10-12
加深git fetch --deepen=50
转为完整git fetch --unshallow
标签浅克隆默认取不到全部标签,可 git fetch --tags 补

常用示例

常用示例
git clone --depth 1 https://example.com/app.git
cd app
git fetch --deepen=100
git fetch --unshallow   # 需要完整历史时
git describe --tags
CI 里按需加深比直接完整克隆省时间;发布流程若依赖 tag 信息,先在流水线里补齐标签。

易错点

  • 浅克隆上直接做 merge-base 或 describe 结果可能不准,先确认历史是否完整
  • 对浅克隆执行某些历史重写会失败,重写前先 unshallow

数据来源与参考

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