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

投稿者 Morita Sou

フロントエンドグループチームマネージャー。
適切な技術提案やコミュニケーションを出来るように心掛けています。CSS設計・CMS構築や開発環境の構築などを得意としています。Macやエディタ、開発環境などを快適にすることにいつも燃えています。