偶尔我会把一个DVD-rip放到一个网站项目中,然后不小心git commit -a -m ...,然后,zap,回购邮件被2.2演出臃肿.下次我做了一些编辑,删除了视频文件,并提交了所有内容,但是历史记录中的压缩文件仍然存储在存储库中.
我知道我可以从那些提交开始分支并将一个分支重新绑定到另一个分支.但是我应该怎么做才能将2个提交合并在一起,以便大文件没有在历史记录中显示并在垃圾收集过程中被清除?
可能重复:
如何从Git中的提交历史中清除一个巨大的文件?
我做了一件蠢事.想象一下,我提交了一个100MB的文件.然后我看到这个并删除此文件并再次提交.这是删除文件的正常过程.
但现在副作用是我的历史很重,因为它保存了这个大文件(我相信这就是为什么它很重).我只使用本地git,所以我不在任何服务器同步.
如何最终删除此文件并节省磁盘空间?
我在索引中添加了一个文件:
git add somefile.txt
然后我得到了这个文件的SHA1:
git hash-object somefile.txt
我现在有一个SHA1,我想使用SHA1检索索引中对象的文件名.
git show 5a5bf28dcd7944991944cc5076c7525439830122
此命令返回文件内容,但不返回文件名.
如何从SHA1获取完整的文件名和路径?
我提交了一些文件并尝试将它们推送到远程存储库。但是,我在列表中发现了一个大视频文件,并终止了推送。然后我尝试从列表中删除该文件并再次推送。
$git commit -m "comments" -a
$git push origin my_branch
... # I found mp4 file here and terminated push
$git rm --cached path/to/mp4
$git commit -m "comments" -a
$git push origin my_branch 
问题
git 仍然试图将 mp4 文件推送到 repo。     
问题 如何避免被删除的文件推送到远程仓库?
PS
我也试过git rm path/to/mp4,文件已从我的目录中删除,但git仍然试图将文件推送到repo