我想将sql文件移动到与某些编码相关的登台服务器。我忽略了它的大小为1Gig并提交文件的事实。我不记得它是否已完成提交,但我继续提交不同文件的其他更改。现在当我在我的登台服务器上并从开发中获取或拉取更改时,我得到内存不足错误。我在开发系统上看到了顶部,并且在获取期间正在使用所有内存。
有没有办法让Git完全忘记我曾经提交过大型sql文件? 我的开发系统是MacOS,升级是Linux。
答案 0 :(得分:3)
是。但是你必须通知那些拉动重新克隆存储库以避免后来出现问题的人。您需要做的是rebase-interactive提交所在的分支并删除提交。从没有其他引用(分支,标记等)引用它的那一刻起,提交将保持约30天(默认情况下)。这为您提供了足够的时间来改变主意。当然,如果您希望修剪reflog,然后垃圾收集存储库以立即缩小存储库。
例如:
git checkout contaminated-branch
git rebase -i HEAD~100 # if 100 commits ago is long enough
然后你会打开一个编辑器,列出自100次提交以来的提交。找到添加该大文件的提交,并在编辑器中删除其行。保存并退出。
如果他们在提交大文件后从该存储库中撤出,这将使每个人的存储库无效。今天一定要对他们好。