我开始了一个小项目(10mb),随着它的发展和产生输出图像,它呈指数级增长(达到12 gb)。我意识到我上传的图像不是代码的一部分。我删除了它们,添加了一条规则,不上传图像并继续提交。问题是现在代码仍然是几mb,但整个存储库重量为2 GB。我想恢复或删除历史记录中我上传图片的所有更改,我的意思是每次发送
new file: image.png
它上传图像的服务器,现在我想删除任何图像的痕迹。
我自己也在努力工作。
有人能告诉我怎么做吗?
答案 0 :(得分:4)
可以使用git rebase -i
完成。它将打开一个对话框,您可以在其中更改每个提交并从此提交中删除图像
rebase的副作用是SHA-1会发生变化,如果其他人已经撤出分支,它将无法使用,他将不得不删除分支并再次检查出来。所以在你做之前要三思而行。
git log --follow <file_name>
Read this post。它有一个详细的解释和示例代码,如何做到这一点。
将大文件存储在子模块中,这样它们就不会成为基本代码的一部分
答案 1 :(得分:0)
您可以使用git filter-branch
。 Github有一个非常好的帮助页面,解释了从存储库中删除文件的过程。