菜单
Git大型项目浅克隆及历史恢复

有时候部署机带宽较小,中途有git提交了大文件(如引用的视频介绍等)然后又删除掉,这种情况可以考虑使用浅克隆的方式来进行临时发版。后续有需求可以在慢慢的完整恢复。

# 仅获取最近一次提交的完整代码
git clone --depth 1 -b <branch-name> <repository-url>

# 示例
git clone --depth 1 --branch main https://github.com/user/repo.git

本地快速开发时也可以这样搞

但是有两个后遗症:

  1. 无法查看完整历史提交记录;
  2. 无法切换其他分支

解决方案

1、恢复完整历史记录

git pull --unshallow

2、恢复分支切换

# 查看当前远程分支设置
git config remote.origin.fetch

# 修改远程分支设置
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"

# 根据配置更新一下
git remote update

参考文章:加速几十倍 git clone 速度的 --depth 1,它的后遗症怎么解决