
.gitignoreを使わずに特定ファイルをgit管理から除外する方法
Claude Codeを使い始めたことで、.claude/ディレクトリやCLAUDE.mdなどのファイルが生成されるようになった。これらをチーム全体で共有できれば作業効率も向上すると思うが、現時点では諸事情により共有できない状況にある。
しかし、.gitignoreに追加するとチーム全体に影響を与えてしまう。自分だけがClaude Codeを使っている場合、チームの.gitignoreを変更するのは適切ではないだろう。
本記事では、.gitignoreを使わずに特定のファイルやディレクトリをgit管理から除外する方法を紹介する。
検証環境
- macOS 15.7.3
- git version 2.50.1 (Apple Git-155)
.git/info/excludeとは
.git/info/excludeは、ローカルリポジトリ専用の除外設定ファイルである。.gitignoreと同じ書式で記述できるが、リポジトリにコミットされないため、自分だけの除外設定を管理できる。
| 特徴 | .gitignore | .git/info/exclude |
|---|---|---|
| 対象範囲 | リポジトリ全体(チーム共有) | ローカルのみ |
| コミット対象 | される | されない |
| 用途 | プロジェクト共通の除外設定 | 個人的な除外設定 |
手順1:.git/info/excludeを編集する
echoコマンドで追記する場合は以下のようにする。
echo ".claude/" >> .git/info/exclude
または、エディタで直接ファイルを開いて追記することもできる。
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.claude/
手順2:除外設定を確認する
git statusを実行して、除外したファイルやディレクトリが表示されなくなっていれば設定完了である。
注意点
.git/info/excludeは、まだgitで追跡されていないファイルにのみ有効である。
すでにコミット済みのファイルを除外したい場合は、先にgit rm --cachedでインデックスから削除する必要がある。
git rm --cached -r .claude/
補足:グローバル設定
すべてのリポジトリで同じファイルを除外したい場合は、グローバル設定を利用できる。
git config --global core.excludesfile ~/.gitignore_global
echo ".claude/" >> ~/.gitignore_global
この設定を行うと、すべてのリポジトリで.claude/が除外される。ただし、影響範囲が広いため個人的には推奨しない。
まとめ
.git/info/excludeはローカル専用の除外設定ファイルである- チームの
.gitignoreを変更せずに、個人的な除外設定ができる - Claude Codeの設定ファイルなど、個人環境特有のファイル管理に便利である
チームの.gitignoreを汚さずに個人的なファイルを除外したい場合の参考になれば幸いである。







