git rebase失败,出现“错误”;致命:内存不足“;由于文件太大,重设基础时出错
下面是一个场景:git rebase失败,出现“错误”;致命:内存不足“;由于文件太大,重设基础时出错,git,Git,下面是一个场景:git repo包含master。已创建名为“fixed_dependencies”的分支。在“fixed_dependencies”之外,创建了另一个分支“included_externals”,其中添加了一些大文件(每个文件超过1GB)。在“包含的外部”之外,创建了另一个分支“分布式通信”。当我们使用master重新设置“分布式通信”的基址时,在上一次提交/分支中添加的那些文件会导致“致命:内存不足”错误 问题: 我们如何将“分布式通信”合并/重定基址回到master(以保留
git repo包含master。已创建名为“fixed_dependencies”的分支。在“fixed_dependencies”之外,创建了另一个分支“included_externals”,其中添加了一些大文件(每个文件超过1GB)。在“包含的外部”之外,创建了另一个分支“分布式通信”。当我们使用master重新设置“分布式通信”的基址时,在上一次提交/分支中添加的那些文件会导致“致命:内存不足”错误 问题:
我们如何将“分布式通信”合并/重定基址回到master(以保留回购历史),而不是恢复到master,并简单地将新文件从分支复制到新分支(不包括添加错误的大问题文件)并使用master重定该新分支的基址?有没有办法告诉git在重播过程中排除这些大文件?如果您认为添加这些文件是错误的,那么只需
git rm
就可以了?git rm将只用于当前提交,对吗?因此,当重播发生时,仍然会看到这些文件,因为主服务器和当前服务器之间存在提交。无论如何,这是我的理解。可能最简单的方法是将存储库复制到一台内存更多的机器上,这样就不会耗尽内存,或者向现有机器添加更多内存。第二个最简单的方法可能是丢弃大文件。(你可能会发现这两种方法的简单性是相反的。)我尝试了一下BFG,它似乎做了一件非常棒的工作,简单地删除了不需要的文件,尽管我没有进一步测试以确保它不会在副作用方面对回购协议造成严重破坏:)如果您认为添加文件是错误的,只需git rm
文件?git rm将只用于当前提交,对吗?因此,当重播发生时,仍然会看到这些文件,因为主服务器和当前服务器之间存在提交。无论如何,这是我的理解。可能最简单的方法是将存储库复制到一台内存更多的机器上,这样就不会耗尽内存,或者向现有机器添加更多内存。第二个最简单的方法可能是丢弃大文件。(你可能会发现这两种方法的简单性是相反的。)我尝试了一下BFG,它似乎做了一项非常出色的工作,只是简单地删除了不需要的文件,尽管我没有进一步测试以确保它不会在副作用方面对回购协议造成严重破坏:)