相关疑难解决方法(0)

折叠git存储库的历史记录

我们有一个有着悠久历史的git项目.

具体来说,在项目的早期,项目中有相当多的二进制资源文件,这些文件现在已被删除,因为它们实际上是外部资源.

但是,由于先前提交了这些文件,我们的存储库大小> 200MB(总结账时间约为20MB).

我们想要做的是"折叠"历史记录,以便存储库看起来是从以后的版本创建的.例如

1-----2-----3-----4-----+---+---+
                   \       /
                    +-----+---+---+
Run Code Online (Sandbox Code Playgroud)
  1. 存储库已创建
  2. 添加了大量二进制文件
  3. 删除了大量的二进制文件
  4. 存储库的新目标"开始"

因此,我们希望在某一点之前丢失项目历史.此时只有一个分支,因此尝试处理多个起点等没有复杂性.但是我们不希望丢失所有历史记录并使用当前版本启动新的存储库.

这是可能的,还是我们注定要永远拥有一个膨胀的存储库?

git version-control

81
推荐指数
4
解决办法
3万
查看次数

如何通过非交互式压缩除最近的提交之外的所有提交来减少膨胀的Git仓库的大小?

我的Git repo有数百GB的数据,比如SQL备份,所以我试图删除旧的,过时的提交,因为它们会使一切变得越来越大.我需要一个快速的解决方案; 越快越好.

除了最新的提交之外,我如何压缩所有提交,而不必在交互式rebase中手动压缩每个提交?具体来说,我不想使用

git rebase -i --root
Run Code Online (Sandbox Code Playgroud)

我的回购

我有这些提交:

A .. B .. C ... ... H .. I .. J .. K .. L
Run Code Online (Sandbox Code Playgroud)

我想是这样的(在两者之间挤压的一切A,并H进入A):

A .. H .. I .. J .. K .. L
Run Code Online (Sandbox Code Playgroud)

有关如何压缩所有提交的答案,但我想保留一些最近的提交.我也不想压缩最近的提交.(特别是我需要保持前两个提交从顶部开始计数.)

git rebase git-rebase git-rewrite-history

8
推荐指数
1
解决办法
2888
查看次数