Git 大型比特桶回购|将旧承诺拆分为另一个回购

Git 大型比特桶回购|将旧承诺拆分为另一个回购,git,github,bitbucket,Git,Github,Bitbucket,我们有一个大型的bitbucket回购协议(1.89 GB),我们的工程团队需要减少该协议以继续在bitbucket云上使用该协议 目标是通过删除旧的提交和历史记录来减少当前回购的规模 诀窍是,我们不能失去承诺历史,所以我们有一个二级回购,我们可以将旧的历史或新的承诺转移到 试图找出实现这一点的最佳选择 备选案文1: 我们在本地克隆回购协议,减小回购协议的大小,然后将缩减后的协议推送到新位置,并将其作为新的回购协议推送代码 这并不理想,因为许多用户已经在Sourcetree中设置了当前的回

我们有一个大型的bitbucket回购协议(1.89 GB),我们的工程团队需要减少该协议以继续在bitbucket云上使用该协议

目标是通过删除旧的提交和历史记录来减少当前回购的规模

诀窍是,我们不能失去承诺历史,所以我们有一个二级回购,我们可以将旧的历史或新的承诺转移到

试图找出实现这一点的最佳选择

备选案文1:

  • 我们在本地克隆回购协议,减小回购协议的大小,然后将缩减后的协议推送到新位置,并将其作为新的回购协议推送代码
这并不理想,因为许多用户已经在Sourcetree中设置了当前的回购

选择2

  • 创建新回购,克隆当前回购,将其作为存档回购推送到新回购
  • 使用上述链接中的文档减少本地回购的历史记录,将其推回到当前远程回购
选择3

  • 本地克隆repo,如果存在git命令,则运行git命令,根据提交历史将其拆分为两个本地repo,即仅保留最后4个提交,其他所有内容都进入新的repo
  • 将当前提交推送到当前远程repo
  • 将旧的承诺推送到新的回购协议

这个选项更理想,但似乎非常接近选项二,但想看看人们是否知道有git命令可以执行选项三?

可能是重复的感谢,但这并不是我想要的,而是让我重新思考这一点。因为我只需要删除提交历史记录,所以我们决定创建一个新的temp_分支并将代码移到那里,删除主分支,然后将temp_分支重命名为master。我一点也不喜欢这个解决方案,但它大大减少了我们的回购规模,我们的工程团队说,在再次克隆代码后,一切都正常。也许你可以把它清理一下?看一看,我们确实看了bfg cleaner,但不幸的是有很多,比如数千个小文件和一个大文件。删除5年的提交历史记录将我们的大小减少了4MB,我们采用了压缩文件夹结构,使我们的容量低于1GB。可能是重复的感谢,但这并不完全是我想要的,但让我重新思考这一点。因为我只需要删除提交历史记录,所以我们决定创建一个新的temp_分支并将代码移到那里,删除主分支,然后将temp_分支重命名为master。我一点也不喜欢这个解决方案,但它大大减少了我们的回购规模,我们的工程团队说,在再次克隆代码后,一切都正常。也许你可以把它清理一下?看一看,我们确实看了bfg cleaner,但不幸的是有很多,比如数千个小文件和一个大文件。删除5年的提交历史记录将我们的大小减少了4MB,我们采用了压缩文件夹结构,使我们的容量低于1GB。