Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
提交的大文件损坏了我的GIt存储库_Git - Fatal编程技术网

提交的大文件损坏了我的GIt存储库

提交的大文件损坏了我的GIt存储库,git,Git,我想将一个sql文件移动到我的暂存服务器,该服务器与一些编码相关。我忽略了一个事实,即它的大小是1Gig,并提交了该文件。我不记得它是否完成了提交,但我继续提交来自不同文件的其他更改。现在,当我在登台服务器上,从开发中获取或提取更改时,会出现内存不足错误。我在我的开发系统上观看了top,所有的内存都在获取过程中使用 有没有办法让Git完全忘记我提交过大的sql文件? 我的开发系统是MacOS,登台是Linux。是。但是,为了避免以后的麻烦,您必须通知任何试图重新克隆存储库的人。您需要做的是重新设

我想将一个sql文件移动到我的暂存服务器,该服务器与一些编码相关。我忽略了一个事实,即它的大小是1Gig,并提交了该文件。我不记得它是否完成了提交,但我继续提交来自不同文件的其他更改。现在,当我在登台服务器上,从开发中获取或提取更改时,会出现内存不足错误。我在我的开发系统上观看了top,所有的内存都在获取过程中使用

有没有办法让Git完全忘记我提交过大的sql文件?
我的开发系统是MacOS,登台是Linux。

是。但是,为了避免以后的麻烦,您必须通知任何试图重新克隆存储库的人。您需要做的是重新设置提交所在分支的基础,并删除提交。从没有其他引用(分支、标记等)引用它的那一刻起,提交将保留大约30天(默认情况下)。这给了你足够的时间在以后改变主意。当然,如果您愿意,可以修剪reflog,然后对存储库进行垃圾收集,以立即缩小存储库

例如:

git checkout contaminated-branch
git rebase -i HEAD~100  # if 100 commits ago is long enough
然后,您将打开一个编辑器,列出自100次提交以来的提交。找到添加该大文件的提交,并在编辑器中删除其行。保存并退出

这将使每个人的存储库失效,如果他们在您提交了那个大文件后从该存储库中取出。今天一定要对他们好一点