git管理下には置きたいけれど 今回のブランチに限り 変更を追跡されて欲しくない時は
assume-unchanged または skip-worktree を設定することで追跡から外すことができます。
なお、これは開発側(更新、コミット、push を行う側)に設定します。
git update-index --assume-unchanged <ファイル名>
取り消す
git update-index --no-assume-unchanged <ファイル名>
git update-index --skip-worktree <ファイル名>
取り消す
git update-index --no-skip-worktree <ファイル名>
どちらもブランチごとに有効 ブランチを移動した際は再度設定が必要です
git ls-files -v
設定されているファイルには先頭に 半角の h が表示されます
設定すると、git status での更新されたファイルリストに表示されなくなります。
git add -A でステージするファイルに追加されることもありません。
ただ設定したローカルリポジトリのみに有効なので、 別のローカルにて設定忘れたまま更新してコミット・push されるともちろんリモートに反映されます。
基本的にskip-worktreeで良い。
イメージとしては、skip-worktreeは手元の変更を優先するが、 assume-unchangedはリポジトリの変更を優先する。
そのため、git reset --hardを実行したような場合は、 assume-unchangedは手元の変更が失われる。