TL;DR
世の中にあるのは、大体これから.DS_Storeを追跡させないように.gitignoreをいじる記事が大半で、すでにコミットしてしまった状態から入れる保険がないので調べた。
git filter-repoを使って履歴からも全部消す方法です。
コマンド
$ echo .DS_Store >> .gitignore
(適当にコミットする)
$ git rm --cached .DS_Store
$ git filter-repo --path .DS_Store --invert-paths --force
結構荒いコマンド叩いてるので、チーム開発の時はポリシーをよく確認してください。
filter-repoがない場合
git: 'filter-repo' is not a git command. See 'git --help'.
とエラーが出たときは、git-filter-repoをインストールする。macOSの人はbrewで一発。
$ brew install git-filter-repo
他のプラットフォーム使ってる人はこっち見てください。