dev*_*oid 3 git git-filter-branch
一个大的二进制文件被添加到我的git存储库20提交之前.删除它:
git filter-branch --index-filter "git rm --cached --ignore-unmatch FILE" \
--prune-empty HEAD
Run Code Online (Sandbox Code Playgroud)
在我的项目历史记录中为每次提交(~1100)更改SHA1.它确实删除了文件,但我希望只有git push -f少量的修改提交.有没有办法告诉filter-branch只修改提交FILE和后代评论,在我的情况下约20次提交?
如果你知道什么提交引入了文件,最简单的方法是指定$SHA^..HEAD($SHA引入它的提交在哪里).这将阻止它甚至查看较旧的提交.
如果引入此文件的提交仅引入它,并且没有其他提交,并且此后没有其他提交触及它,那么您可以通过使用git rebase --onto $SHA^ $SHA(在哪里$SHA引入此文件的提交,在没有过滤器分支的情况下更简单地删除它)).这将简单地$SHA从历史中删除提交.