既に git 管理しているファイルをあえて無視したい - Qiita

https://qiita.com/usamik26/items/56d0d3ba7a1300625f92

# ファイルの変更を無視する設定
git update-index --assume-unchanged [ファイル名]    # レポジトリ側が更新されたとき、レポジトリ側で上書きされる
git update-index --skip-worktree [ファイル名]       # レポジトリ側が更新されたとき、作業ツリーの内容が維持される

# 上の設定をもとに戻す
git update-index --no-assume-unchanged [ファイル名]
git update-index --no-skip-worktree [ファイル名]

設定ファイルなどローカルで個人ごとに変更しておきたいがそれをコミット対象に含めたくないという場合に、変更を無視する設定。

git ls-files -v

> assume-unchanged 設定のファイルは、状態が小文字で表示されます。
> skip-worktree 設定のファイルは、状態が S と表示されます。
……で現在の設定が確認ができる。



https://git-scm.com/docs/git-update-index
git update-index コマンドは git add の低レベル版コマンドで、インデックス(ステージング領域)を操作するもののようだ。
そのオプションとしてインデックスのファイルに対してassume-unchanged、skip-worktreeフラグのON/OFFを設定できるらしい。
assume-unchangedがONの場合、Gitは作業ツリーがインデックスに記録されているものと一致するかのように振る舞う。
skip-worktreeががONの場合、Gitは作業ツリーが最新であるかのように振る舞う。