繁体   English   中英

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

[英]Committed large file corrupted my GIt repository

我想将sql文件移动到与某些编码相关的登台服务器。 我忽略了它的大小为1Gig并提交文件的事实。 我不记得它是否已完成提交,但我继续提交不同文件的其他更改。 现在当我在我的登台服务器上并从开发中获取或拉取更改时,我得到内存不足错误。 我在开发系统上看到了顶部,并且在获取期间正在使用所有内存。

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

是。 但是你必须通知那些拉动重新克隆存储库以避免后来出现问题的人。 您需要做的是rebase-interactive提交所在的分支并删除提交。 从没有其他引用(分支,标记等)引用它的那一刻起,提交将保持约30天(默认情况下)。 这为您提供了足够的时间来改变主意。 当然,如果您希望可以修剪reflog,然后垃圾收集存储库以立即缩小存储库。

例如:

git checkout contaminated-branch
git rebase -i HEAD~100  # if 100 commits ago is long enough

然后你将打开一个编辑器,列出自100次提交以来的提交。 找到添加该大文件的提交,并在编辑器中删除其行。 保存并退出。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM