Вы можете сделать это с помощью git filter-branch
git filter-branch --tree-filter 'rm -f <filename>' HEAD
См. Pro Git: переписывание истории для получения дополнительной информации.
Но BFG Repo Очиститель проще и быстрее.
bfg --delete-files <filename> <repo dir>
Если вы хотите переписать один коммит, который теперь состоит из нескольких слияний назад, и сохранить эти слияния, используйте интерактивный перебаз с слиянием.
git rebase -i -m -r <the commit>^
Любой, кто работает над этой веткой, должен git pull --rebase=merges
обновить свою работу поверх измененной истории.
См. этот ответ для получения более подробной информации.