きり丸の技術日記

技術検証したり、資格等をここに残していきます。

Gitにchmodした結果を含めない、そして復帰させた時の手順(core.fileMode)

WSLで開発中にroot権限で作成されたファイルがあり、IntelliJ IDEAで更新できなかったファイルがありました。そのためディレクトリごとchownchmodを行ったのですが、Gitに変更箇所があると検知されてしまい、気づかずにコミットしてしまいました。

今回の記事では、chmodを行っても検知されないようにする設定方法と誤ってコミットしてしまったときの復帰手順の操作を記載します。復帰手順に関しては、もっといいやり方がありそうですので、もし同じ事象にハマったら教えてください。

環境

  • Git
    • 2.34.1
  • IntelliJ IDEA
    • 2024.1 EAP

設定方法

次のコマンドを実行すれば、chmodしても結果がコミットされなくなります。

git config --global core.fileMode false

復帰方法

  1. 一時ブランチを切る
  2. 目的のブランチを戻したいコミットまで戻す

IntelliJ IDEAのGit(Alt + 9)で操作しました。目的のコミットを選択しながら右クリックでReset Current Branch to Hereを選択してください。次に出現するウィンドウはHARDを選択してください。

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

終わりに

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

なお、Chat GPTからは目的の答えは聞き出せませんでした。

類似記事