我正在使用git开始一个项目,我将提交非常大的文件,但每周只有几次.我已经尝试使用git as-is,它似乎将整个文件存储在每次更改的提交中.这不适用于此项目,存储库将失去控制.所以,我想减少存储库的大小.
我的第一个想法是"简单地"删除所有比两周更早的提交,或者只保留例如历史上的五次提交(这可能更好:) :)我用谷歌搜索并阅读了很多来自The Git社区书籍我猜我会需要使用的git-rebase或git-filter-branch.事情是我似乎无法让它工作.
只是为了说明; 我有一个只有一个分支的历史H(主分支)
A - > B - > C - > D - > E.
我想删除一些以前的提交,使我的历史看起来像
C - > D - > E.
提交A和B应该完全清除.我已经尝试了git-rebase但它似乎将提交合并在一起而不是实际删除旧的,也许我不完全理解rebase是如何工作的.另一个想法是从.git/objects中删除所有内容然后使用以下内容构建新提交git-hash-object -w,git-mktree而且git-commit-tree,我还没有设法将这个"人造"树推送到服务器.
我不会与任何分支机构合作,因此不需要考虑这些因素.
我想知道的是,是否有人可以给我具体的用法,git-rebase如果这是我应该使用的?或者其他一些提示,我可以做的例子.
干杯!
编辑:
大文件不会始终是相同的大文件,有些文件将被新文件替换.我希望这些被替换的文件完全从历史中清除.