🤖

LLM開発で役立つ .git/info/exclude の使い方

に公開

はじめに

Claude Code、Cursor、GitHub Copilotなど、LLMを活用したコーディングが一般的になってきました。これらのツールを効果的に使うために、プロンプトやコンテキスト用の一時ドキュメントを作成することはありませんか?

例えば:

  • CLAUDE.md - Claudeへの指示書
  • context/ - LLMに渡すコンテキスト情報
  • prompts/ - 再利用可能なプロンプト集
  • dev-notes.md - 開発メモや TODO リスト

これらのファイル、チームメンバーと共有する必要はないけど、.gitignoreに追加するのも躊躇することはありませんか?人によってファイル名やフォルダ構成が違うため、.gitignoreが肥大化してしまいます。

そんな時に便利なのが .git/info/exclude です。

.git/info/exclude とは

.git/info/exclude は、ローカル環境専用のgitignoreファイルです。.gitignoreと同じ構文で書けますが、Gitで追跡されないため、自分だけの無視ルールを定義できます。

.gitignore との違い

項目 .gitignore .git/info/exclude
Gitで追跡 ✅ される(コミット対象) ❌ されない(ローカルのみ)
チーム共有 ✅ される ❌ されない
配置場所 プロジェクトルート(どこでも) .git/info/exclude のみ
用途 チーム全体の無視ルール 個人的な無視ルール

基本的な使い方

1. ファイルを編集

.git/info/exclude は最初から存在するので、エディタで開くだけです:

# VSCodeで開く
code .git/info/exclude

# vimで開く
vim .git/info/exclude

# nanoで開く
nano .git/info/exclude

2. 無視パターンを追加

.gitignore と同じ構文で書けます:

# LLM開発用のドキュメント
CLAUDE.md
AI_CONTEXT.md
prompts/
context/

# 個人的な開発メモ
dev-notes.md
TODO.md
SCRATCH.md

# IDEの個人設定(チームで統一していない場合)
.vscode/
.idea/

# ローカルテスト用ファイル
test-local.js
debug-*.log

3. 保存して完了

保存すれば即座に反映されます。git status で確認してみましょう:

# 追加前
$ git status
Untracked files:
  CLAUDE.md
  context/

# .git/info/exclude に追加後
$ git status
nothing to commit, working tree clean

LLM開発での実践例

私が実際に使っているパターンを紹介します。

Claude Code を使う場合

# Claude専用の指示書
CLAUDE.md
.claude/

# Claude用のコンテキストドキュメント
claudedocs/
claude-context/

# セッションメモ
claude-session-*.md

Cursor を使う場合

# Cursor用のルール
.cursorrules
cursor-context/

# AIチャット履歴(個人的なやりとり)
.cursor/

共通の開発ドキュメント

# 個人的なメモ(名前は人によって違う)
dev-notes.md
NOTES.md
SCRATCH.md
TODO-personal.md

# プロンプトテンプレート(個人用)
my-prompts/
prompt-templates/

# ローカルテスト用データ
test-data-local/
fixtures-local/

いつ .gitignore を使い、いつ .git/info/exclude を使うか

.gitignore を使うべき場合

  • ビルド成果物(dist/, build/, node_modules/
  • 環境変数ファイル(.env, .env.local
  • ログファイル(*.log
  • チーム全員が無視すべきファイル

.git/info/exclude を使うべき場合

  • 個人的な開発補助ファイル(LLM用ドキュメント、個人メモなど)
  • 個人のエディタ設定(チームで統一していない場合)
  • ローカルテスト用の一時ファイル
  • 人によって名前が異なるファイル

# ============================================
# LLM開発用ドキュメント
# ============================================
# Claude Code
CLAUDE.md
.claude/
claudedocs/

# プロンプト管理
prompts/
my-prompts/

# コンテキスト情報
context/
ai-context/

# ============================================
# 個人的な開発メモ
# ============================================
dev-notes.md
NOTES.md
SCRATCH.md
TODO-local.md

# セッションメモ(日付付き)
session-*.md
dev-log-*.md

# ============================================
# ローカルテスト
# ============================================
test-local/
debug-*.log
*.local.js

# ============================================
# エディタ設定(個人用)
# ============================================
.vscode/settings.json
.idea/workspace.xml

まとめ

.git/info/exclude は、LLM を活用した開発において非常に便利なツールです:

  • ✅ 個人的な開発補助ファイルを簡単に無視できる
  • .gitignore を肥大化させない
  • ✅ チームの開発フローを邪魔しない
  • ✅ プロジェクトごとに柔軟に設定できる

Claude Code や Cursor などのLLMツールを使っている方は、ぜひ試してみてください!

参考リンク

Discussion