在Git中,有一个命令git clone --depth=<depth>
只能检索特定长度的历史数据。还有一个命令可以使用git fetch --depth=<depth>
收集更多历史数据。
当我们想要从大型存储库中释放一些空间时怎么样?我知道我们可能会使用git gc
或git prune
但是还有其他方法可以使用--depth=<depth>
来减少本地存储库中提交存储的数量吗?它还应该让SHA1继续使用它。
答案 0 :(得分:2)
最简单的方法是:
git clone --depth=n /url/of/remote/repo
那将克隆最后n次提交,同时允许fetch / pull / psuh仍然可以使用远程仓库。
从Git 2.5开始,你可以fetch a single commit,但除非那个提交是最新的(类似于git clone --depth=1
),否则不会提取/拉/推。
确保给定本地回购尽可能精益的另一种方法是使用combination of gc/prune/repack:
git gc
git repack -Ad # kills in-pack garbage
git prune # kills loose garbage