誰かがこれを行うためのより効率的でインテリジェントな方法を持っているかどうか疑問に思っていました. ループ構成では、各コミットを読み取ることによって、削除されたすべてのファイルをすべてのコミットから消去する必要があります。多くのコミットがあると、これには長い時間がかかります。
git log --pretty=format: --name-status | grep -i ^D | cut -f2- | sort -u | xargs -I {} git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch {}' HEAD