gpt4 book ai didi

git - 在 git rebase -i 中删除提交不会减少 .git 文件夹的大小

转载 作者:太空狗 更新时间:2023-10-29 13:25:07 25 4
gpt4 key购买 nike

我有一个 git 存储库,其中 .git 文件夹为 7MB。然后我添加并提交了一个 16MB 的 .exe 文件,后跟:

git gc --aggressive && git prune

完成上述操作后,我的 .git 文件夹现在是 23MB

接下来我做了一个 git rebase -i 并选择了 drop:

enter image description here

在引入 16MB 文件的提交 (c8185ff) 中,我完成了 rebase 并再次运行:

git gc --aggressive && git prune

现在,当我测量 .git 文件夹时,它仍然是 23MB

上面执行的 git rebase 是否应该不从历史记录中完全删除提交 - 就好像该文件从未引入过一样 - 因此将 .git 文件夹带回 7MB 大小?

我还尝试对存储库进行全新克隆,但大小仍然是 23MB - 我假设在进行全新克隆时会清除 reflog。

最佳答案

默认情况下,git gc 只修剪超过 2 周的松散对象。

要对所有对象强制修剪,请使用 --prune=all :

git -c gc.reflogExpire=now gc --prune=all

但是,如果该对象仍然可以通过任何引用(例如 origin/master 或 reflog 之类的远程引用)访问,则它不会被修剪。

这就是为什么我们还必须设置 gc.reflogExpire配置到现在

(对于 git prune [在 gc 之后不需要],它是 --expire )

关于git - 在 git rebase -i 中删除提交不会减少 .git 文件夹的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com