假设我从 GitHub 上的 30000 个提交存储库进行克隆。如果我的理解是正确的,它将复制所有 30000 个提交,这可能会占用大量磁盘空间。然而,99% 的时间我并不关心这些提交中的 29990 个,因为我只需要查看 git log
中的最新历史记录。 .
我知道使用 git clone --depth N
为了只检查最后 N 次提交,但是我想知道是否有办法持续强制执行此操作?
例如我查看了最新的 1000 个提交。然后在远程进行 200 多个提交,因此下次 pull 时,最旧的 200 个提交将从磁盘中删除,并添加新的 200 个提交,因此我只在本地存储 1000 个提交。
我对 git 没有很深入的了解,所以任何解释都非常有帮助!
最佳答案
使用git clone --深度1000
进行初始浅克隆后,您可以使用git fetch --depth 1000
继续保持浅深度。 .
请记住,git fetch
不会更新当前 checkout 的分支,因此您必须执行 git pull --depth 1000
之类的操作来更新当前分支。或者git merge origin/master
或git rebase origin/master
。
您还可以执行git reset --hard origin/master
。但我要提醒一下,git reset --hard
会删除当前未提交的更改,所以请小心。
没有办法自动维护深度。您需要将 --depth 1000
传递给您运行的任何 git clone/fetch/pull
命令。
关于git - 为所有存储库自定义 .git 深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62311949/