課題
チームでgit管理している設定ファイル(エディタ設定、AI設定など)を頻繁にローカル修正するが、毎回 git status に差分が出て邪魔。かといってgit管理から完全に外すと、チームへの共有ができなくなる。
解決: --skip-worktree
# 適用(ローカル変更をgitに無視させる)
git ls-files <dir>/ | xargs git update-index --skip-worktree
# 解除(再びgitで変更を追跡する)
git ls-files <dir>/ | xargs git update-index --no-skip-worktree
--assume-unchanged との違い
| フラグ | 用途 | git resetで解除 |
|---|
--assume-unchanged | パフォーマンス最適化 | される |
--skip-worktree | 意図的なローカル変更の無視 | されない |
ローカル設定のカスタマイズには --skip-worktree が適切。
注意点
- ローカル専用の設定。チームメンバーも各自で実行が必要
- リモートで対象ファイルが更新されると
git pull 時にコンフリクトする可能性あり(一時的に解除して対応)
- 新規追加ファイル(未追跡)は対象外。必要なら
.gitignore で対応