标题基本上。
我只是将一些内容与我的.gitignore
混合在一起,并将我的.git
目录臃肿到> 100mb(它是一个像100提交总数的回购..)。
所以我是一个懒惰的家伙,想知道是否有可能删除我的历史记录。我不想改变某些东西或东西,我只是想缩小我的.git
目录大小。
当没有办法做到这一点时,我只会git clone --depth 1
我的回购获得相同的效果。
答案 0 :(得分:1)
这是两个相互矛盾的目标:
删除历史记录意味着一个全新的仓库(rm -Rf .git
,git init .
):这意味着您 强制推送新的本地仓库{{{ 1}},也破坏远程仓库的历史记录,
保持远程仓库的完整性意味着在本地使用git push --force
,即safe to do since Git 2.0, as I have documented here(即您可以从本地浅层仓库推回远程仓库)
第二种方法似乎是最安全的:
注意:对于包含完整历史记录的本地仓库,仅git gc
和git repack
不足以真正缩小git clone --depth 1
文件夹的大小。
请参阅" git gc --aggressive
vs git repack
"。
.git
(对于刚刚克隆的回购品,这不会有太大作用,只会对您已经工作一段时间的本地回购有效)
另外,如果您在过去的操作中执行了git filter-branch
,那么如果您希望缩小{{1}的大小,则git gc
git repack -Ad # kills in-pack garbage
git prune # kills loose garbage
文件夹仍会保留您需要删除的.git
文件夹}}
AFAIU原始问题以及我想要这样做的方法正是在没有删除
之后的状态相同.git/refs/original/
文件夹的情况下,只需删除git日志数据的本地副本即可使其成为'状态与.git/
请参阅" Converting git repository to shallow?"
您可以尝试:
.git