我的git push卡在一个大文件上了。该怎么办?

9
我遇到了致命的sha1错误。我相信它卡在尝试写入大文件的过程中了。 我的状态显示我领先了8个提交。我试图将该文件扩展名添加到排除文件夹中的忽略列表中,但还是卡住了。如何在不丢失本地更改(除了大文件)的情况下继续操作?
我尝试了 预测在git push中将推送多少数据,但打包文件很大,大约650MB。
我不知道如何忽略之前未推送的文件。我能否清除旧的提交而不丢失本地文件?然后删除大文件,再次提交?
1个回答

13

来自http://git-scm.com/book/en/Git-Tools-Rewriting-History

在所有提交中删除一个文件

这种情况相当常见。有人不经思考地使用“git add .”命令提交了一个巨大的二进制文件,你想要在整个历史记录中将其删除。也许你意外地提交了一个包含密码的文件,你希望开源你的项目。 filter-branch 是一款可以用来清理整个历史记录的工具。要从整个历史记录中删除名为 passwords.txt 的文件,你可以使用 --tree-filter 选项进行过滤:

$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD

但如果只是最后一次提交出了问题,你可以通过git rm large_filegit commit --amend来解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接