.gitignore を変えずにローカルだけでファイルを無視するには?

個人用の未追跡パスを、このリポジトリの info/exclude に追加します。ルールはローカルのクローンに残り、プロジェクトと一緒にはコミットされません。

1. リポジトリの exclude ファイルを探す

リポジトリのルートで次のコマンドを実行し、実際のパスを取得します。Git ファイルやリンクされた worktree を使う場合にも対応できます。

git rev-parse --git-path info/exclude

表示されたファイルをエディターで開きます。必要なら親ディレクトリとファイルを作成し、既存の項目は残してください。通常のリポジトリでは .git/info/exclude です。

2. 個人用のルールを追加する

表示された exclude ファイルに次の例を追記します。local-notes というディレクトリとルートの dev.local.json を無視します。構文は .gitignore と同じです。

共有プロジェクトルールはコミットする .gitignore に、複数リポジトリ共通の個人用ルールはグローバル除外ファイルに置きます。worktree はリポジトリのメタデータを共有する場合があるため、各 worktree に独立した設定があるとは限りません。

local-notes/
/dev.local.json

グローバルルールでファイルが無視されるのはなぜ?

3. 検証して追跡状態を確認する

例の未追跡ファイルを作成し、ルールの定義元を調べます。

git check-ignore -v -- local-notes/draft.txt dev.local.json

出力は info/exclude を指すはずです。追跡済みのパスの変更は、このファイルでは隠せません。assume-unchanged や skip-worktree は汎用的な解決策ではありません。必要に応じて、コミットする設定テンプレートと無視するローカルコピーを使ってください。

Git がすでに追跡しているファイルを無視するには?

正確な動作や詳細は、公式の資料を参照してください。 Git のドキュメント · git rev-parse の公式ドキュメント · Git の公式 FAQ