git で自分だけファイルの追跡をスキップする方法
こんにちは、森田です。
git で作業をしているとすでに commit 済みのファイルを、自分だけ追跡から逃れたい場合があります。
今回は、一時的に開発環境 API のエンドポイントを変更したい場合を想定して解説します。
git の状態確認
まずは git status
で状態を確認しましょう。
$ git status -s
M env/development.js
development.js が変更されているのがわかります。
このファイルの変更は自分だけがやりたいので、うっかり commit してしまうのも避けたいので git の追跡をスキップしたいです。
update-index --skip-worktree
オプションで指定のファイルの追跡をスキップ
下記コマンドを実行することで追跡をスキップすることができます。
$ git update-index --skip-worktree env/development.js
これで development.js がスキップされました。
もう一度 git status
で状態を確認してみます。
$ git status -s
何も表示されないので、追跡されてないことがわかります。
追跡スキップしたファイルの確認
追跡をスキップしたファイルの確認は以下のコマンドで確認できます。
$ git ls-files -v | grep ^S
S env/development.js
S
という skip-worktree されたファイルを表示します。
現在は1ファイルのみなので1つしか出ませんが、複数指定している場合は一覧で表示されます。
追跡スキップをやめる
追跡のスキップをやめたい場合は --no-skip-worktree
オプションで元に戻せます。
$ git update-index --no-skip-worktree env/development.js