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からは目的の答えは聞き出せませんでした。