git - 为所有存储库自定义 .git 深度?

标签 git github

假设我从 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/mastergit 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/

相关文章:

Git 生产和开发服务器工作流程

git - Pull Request,忽略一些文件更改

git - 仅在 phpstorm 中存在错误的索引文件 sha1 签名

python - Travis-CI 读取 pull 请求的内容并更新存储库的 README.md

github - 如何将github问题与分支相关联?

git - 使用 Travis CI 和 Capistrano 持续部署到 VPS 的良好工作流程是什么?

gitignore - 忽略文件夹中生成的文件,但不忽略文件夹

git - Meteor:从 Github 克隆存储库时出错

git - 标准错误 : fatal: cannot exec '/tmp/ssh**.sh' : Permission denied fatal: unable to fork

java - 一个人如何既能够使用 IntelliJ 来管理项目的配置,又能拥有一个没有任何 IntelliJ 元数据的 VCS 存储库?