Git删除一些历史提交来减小.git文件夹大小,怎么做?

bksxznpy  于 12个月前  发布在  Git
关注(0)|答案(3)|浏览(141)

我遇到了一个很坚韧的问题。

我的服务器上有一个非常大的repo。巨大意味着:大量的提交,分支,导致一个大的.git文件夹。

现在我想在日期之前删除一些历史提交,以减少.git文件夹的大小。
过去的一周,我学到了很多关于git的知识,我发现我学得越多,我就越困惑。

问题是:

1.它真的可以通过删除一些历史提交来缩小.git的大小吗?因为旧的reversion文件现在可能仍然在使用。
1.如果#1为true,我该怎么做呢?我学会了使用.git/info/grafts + git filter-branch..但是每次结果都是一团糟。提交行被分割成几行,因为在我切断之前有很多分支。
1.即使我解决了分裂的行,得到一个单一的行,正如我所期望的。但我的git repo是一个发布的,很多人已经克隆了它,并在它的工作。是否有可能为本地repo解决冲突,而不重新克隆远程处理的repo?
我希望我把问题说清楚了。
任何建议将不胜感激!

jgovgodb

jgovgodb1#

我可以回答#1。
我强烈建议你在不删除之前提交的情况下减少远程服务器上的Git仓库的大小。这是因为如果有人向你的Git仓库推送提交时出错,你可能需要恢复到之前的提交。

减少远程服务器上的Git仓库大小:

1.在shell中导航到Git存储库(命令行工具)。
1.在shell中输入以下命令,每行输入后按下键盘上的Enter键。这些命令将删除对已删除Git分支的所有引用,并减少Git repo大小。
git reflog expire --all --expire=now
git gc --prune=now --aggressive

epggiuax

epggiuax2#

你也可以尝试重置来限制你的提交数量。或者如果你想更安全地执行git revert:
git reset
看看https://www.atlassian.com/git/tutorials/undoing-changes/git-reset;除非另有说明,所有内容都是根据知识共享署名2.5澳大利亚许可证许可。

wmvff8tz

wmvff8tz3#

命令git filter-branch --tree-filter 'rm -f ' HEAD应该可以帮助您完成所需的操作。

相关问题