Git:从以前的提交中清除存储库中的文件

uro*_*obo 4 git github

我在github上.我设置了一个.gitignore文件,在该文件中,我指定的文件不会被添加到将来的提交中,因为我正在尝试减轻克隆.现在我需要删除所有这些.class文件,例如从所有以前的提交中只分享必要的来源,否则无论我的努力,它总是会增加或减少50mb.我看了http://cheat.errtheblog.com/s/git 我想我可能需要这些命令的组合,但我真的不想做我的工作.谢谢

unu*_*tbu 11

有一个在一个例子git的过滤器分行文档其中你的使用情况相符.

git clone project project.tmp
cd project.tmp
git filter-branch --prune-empty --index-filter 'git rm --cached --ignore-unmatch *.class' HEAD 
cd ..
git clone project.tmp project.clean
rm -rf project.tmp
cd project.clean
Run Code Online (Sandbox Code Playgroud)

project.clean 然后应该准备好向上游推进.

PS.如果你对这个操作可能会如何感到紧张,那么试验一个克隆和github测试分支绝对不会受到伤害.