从git版本库中删除文件的历史记录

作者:, 发表于

有时候不小心把一些大文件commit到了本地版本库,但往网络版本库同步时,因为文件过大被拒绝。如果在上传前,本地有多次提交,此时再在当前版本里删除这些大文件还不够,还需要把历史记录全删掉。效果要跟从来没提交过这些文件一样。

# 删除匹配文件
 git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.zip'

# 回收空间
 rm -rf .git/refs/original/
 git reflog expire --expire=now --all
 git gc --prune=now
 git gc --aggressive --prune=now
 du .git -lsh

# 同步到网络
 git push origin master --force

Q.E.D.


上一篇:git的head-detached错误2016年8月25日
git经常出现下面的错误提示 HEAD detached at origin/development 这个错误是因为当前的HEAD没有位于任何一个分支上的缘故。git branch -a显示远程的所有分支

下一篇:Linux系统中的文件编码问题2016年9月26日
由于UNICODE的优势,目前推荐都用UTF-8进行编码。 bash相关 查询文件所用编码 file命令 file可以查看文件的类型,包括编码: $ file ~/.vimrc /home/xxx/.v


  • 支持使用微薄、微信和QQ的账户登陆进行评论。由各自网站直接认证,不会泄露你的密码。
  • 登陆后可选择分享评论到所绑定的社交网络,如微薄、人人和QQ空间。
  • 评论提交后无法修改。如需修改,请删除原评论再重新提交。
  • 评论支持LaTeX代码,行内公式请用\(a+b=c\),行间公式请用\[a+b=c\]。公式只支持英文字符。