1
情景:大Git仓库(〜16K提交)设有多家分支机构,二进制文件等内<repo>/a/b
的工具已经发展了这么多,我想将它的代码放在一个单独的存储库中。我希望保留历史。我只对一个分支的历史和单个目录内的代码感兴趣。移动目录
这里是我做过什么:
$ git clone <old git repo>
$ git remote rm origin
$ git filter-branch --subdirectory-filter <directory I want> -- --all
结果就是我想要的东西 - 〜80次的提交,一个分支约10的源文件。
问题:版本库很大。 Git gc没有多大帮助。
$ du -sh .
904M .
$ git gc && du -sh .
617M .
$ cd .. && mkdir tmp && cd tmp && git clone ../repo && du -sh repo
615M repo/
我错过了什么?我怎样才能将回购合理化?
我的猜测是合并拉入不需要的变更集: - /你可以尝试导出变更作为补丁与历史? –