我有一个带有三年PowerBuilder二进制文件的git repo。回购非常庞大(不到10GB),我认为由于git只能为二进制增量做很多事情。
我想把这个回购设备变成一个可管理的大小,而且我愿意抛弃一堆早期历史来做这件事。我只是无法弄清楚如何让git去做。我尝试使用交互式rebase来压缩提交,但它提出了一些我不想处理的冲突。
有没有办法选择提交,并在此之前丢弃所有内容?我意识到它将为后续提交重写SHA-1,这没问题。
答案 0 :(得分:1)
这是一种(其他)方式:
git fast-export master~5..master | (cd ../newrepo.git && git init . && git fast-import && git checkout)
上面的示例将在范围master~5..master
中进行提交并创建新的repo。你也可以使用相同的回购,但上面会更安全。
答案 1 :(得分:0)
您可以将整个节目重新整理为一次提交。
像
这样的东西git rebase -i [some early commit]
然后在vim中使用视觉阻止模式来压缩几乎所有这些模式最简单,然后进行fsck
和gc
运行。
或者,您可以使用git filter-branch
完全删除树中的提交。