💭

ブランチ切り替え時に、特定のファイルだけ更新されないようにしたい。

に公開

業務でブランチを切り替えるたびに、毎回ローカルで起動させるために特定のファイルだけ内容を手動で差し替える必要があり、面倒だとと感じていた。

そこで調べてみたところ、Git にはブランチを切り替えても特定のファイルの内容を変更しないようにするコマンドがあることが分かったので、備忘も兼ねて共有する。

特定ファイルの変更を無視する設定

ターミナル(Git Bashなど)で以下のコマンドを実行する

git update-index --skip-worktree パス/ファイル名

このコマンドを実行すると、そのファイルは ワーキングツリー上の変更対象から外されるようになります。
つまり、他のブランチへ切り替えても、そのファイルの内容はローカルのまま保持され、上書きされなくなる。

設定の解除

設定を元に戻したい場合は、以下のコマンドで解除できる。

git update-index --no-skip-worktree パス/ファイル名

無視設定されているファイルの確認方法

現在 --skip-worktree が設定されているファイルは、以下のコマンドで確認できる。

git ls-files -v | grep ^S

参考URL
https://qiita.com/usamik26/items/56d0d3ba7a1300625f92
https://www.ey-office.com/blog_archive/2022/06/28/git-update-index-skip-worktree-do-you-know/

Discussion