Gitにchmodした結果を含めない、そして復帰させた時の手順(core.fileMode)
WSLで開発中にroot権限で作成されたファイルがあり、IntelliJ IDEAで更新できなかったファイルがありました。そのためディレクトリごとchownとchmodを行ったのですが、Gitに変更箇所があると検知されてしまい、気づかずにコミットしてしまいました。
今回の記事では、chmodを行っても検知されないようにする設定方法と誤ってコミットしてしまったときの復帰手順の操作を記載します。復帰手順に関しては、もっといいやり方がありそうですので、もし同じ事象にハマったら教えてください。
環境
- Git
- 2.34.1
- IntelliJ IDEA
- 2024.1 EAP
設定方法
次のコマンドを実行すれば、chmodしても結果がコミットされなくなります。
git config --global core.fileMode false
復帰方法
- 一時ブランチを切る
- 目的のブランチを戻したいコミットまで戻す
IntelliJ IDEAのGit(Alt + 9)で操作しました。目的のコミットを選択しながら右クリックでReset Current Branch to Hereを選択してください。次に出現するウィンドウはHARDを選択してください。

- 一時ブランチで目的のコミットから目的のファイルだけ
get From Revisionで戻す

終わりに
普段なら戻したいファイルをRevert Selected Changesで選択していましたが、chmodの変更は戻せませんでした。復帰方法をまとめてくれる記事は今までなかったと思うので、これを機に同じ失敗した人に役立てばいいと思います。
なお、Chat GPTからは目的の答えは聞き出せませんでした。