◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/Claude Code
⟐ Claude Code/2026-04-26中級

Claude Code の .claude/ ディレクトリをチームで共有する設計 — Git管理する範囲と個人設定の境界

Claude Code の .claude/ をチームで共有する時、どのファイルを Git に入れて、どこを個人設定に残すか。実プロジェクトで得た境界線と .gitignore テンプレートをまとめます。

claude-code132git17team-developmentsettings6

個人で使い始めた Claude Code をチームに広げようとしたとき、最初に判断を迫られるのが .claude/ ディレクトリの扱いです。すべてを Git にコミットすれば全員が同じ設定で始められそうですが、個人の API トークンやセッション履歴まで共有してしまうと、事故の温床になります。逆に .claude/ を丸ごと .gitignore に入れてしまうと、せっかく整備したカスタムコマンドやサブエージェントがチームに引き継がれません。

私は4つの個人プロジェクトで Claude Code を運用し、そのうち2つでチーム展開を進めるなかで、.claude/ の境界が曖昧なまま走ると再現性が崩れる瞬間に何度もぶつかりました。ここでは「何を Git に入れて、何を個人領域に残すか」を、実用的なパターンとして整理します。

.claude/ の中身を分類する

Claude Code の .claude/ には用途の異なるファイルが混在しています。まず構成要素を分類しないと、Git 戦略の議論は前に進みません。代表的な要素は次のとおりです。

  • settings.json — プロジェクト共通の設定(モデル選択・許可ツール・MCP サーバー定義など)
  • settings.local.json — 個人ローカルの上書き設定(既定で gitignore 推奨)
  • commands/ — カスタムスラッシュコマンド(.md ファイル群)
  • agents/ — カスタムサブエージェント定義
  • CLAUDE.md — プロジェクトの作業指針(コードベース上位の知識ファイル)
  • history/ または sessions/ — Claude Code が記録するセッション履歴

このうち、チームで共有する価値があるのは「コマンド」「エージェント」「共通 settings」「CLAUDE.md」の4つです。残りは原則として個人領域に置きます。判断基準はシンプルで、「同じリポジトリで作業する全員が、同じ挙動で Claude Code を使えるべき情報か?」を問うだけです。

チームで共有する4つのファイル

私の判断軸は明確で、「再現性に寄与する設定」だけを Git に入れるというものです。具体的にはこの4種類が該当します。

commands/*.md は共有しないと意味がありません。「/release でリリース手順を実行する」「/migrate でマイグレーションスクリプトを生成する」といったコマンドは、チームの作業手順そのものです。個人別に違う実装を持つ理由がないので、リポジトリ直下の .claude/commands/ にコミットします。レビューを通して品質を上げていける副次効果も大きいです。

agents/ も同じ性質を持ちます。たとえば「PR レビュー専用エージェント」や「テスト失敗の原因を切り分けるエージェント」は、定義を共有しないと「誰々さんの環境でだけ動く」属人性が生まれます。サブエージェントは設計次第で生産性に大きく差が出るので、ここを共有しない手はないと考えています。

CLAUDE.md はプロジェクトのドメイン知識・コーディング規約・テスト戦略を Claude に伝える中核ファイルです。これがリポジトリに入っていないと、新しく参加した開発者が Claude Code を使っても文脈ゼロから始まることになり、Claude Code の真価が発揮されません。

settings.json のうち共有してよいのは、「許可コマンド一覧」「使用モデル」「MCP サーバーの接続先 URL」など、機密情報を含まない部分です。設定の細かいフィールドについては Claude Code の settings.json 完全ガイド も参考にしてみてください。

個人領域に残すべきもの — 私が実際にやらかした落とし穴

Git に入れてはいけないものも明確にしておきます。ここを曖昧にすると、ある日突然 .git/objects の中に API キーが永久保存される事故が起きます。

settings.local.json は Claude Code が「個人の上書き」として認識するファイルで、デフォルトで gitignore に入れることが推奨されています。ここに個人の API トークンや、ローカル限定の許可設定を書きます。

history/ や sessions/ のセッション履歴は、個人の作業内容そのものです。コミットしてしまうと、プロンプトの試行錯誤や、社内の機密情報を含む会話まで公開されてしまいます。私は最初の頃 .claude/ 全体を git add してしまい、レビュアーから「このコミットに OPENAI_API_KEY が混ざっている」と指摘されて慌てて push 前に取り消したことがあります。これは git push 後だったら BFG Repo-Cleaner で履歴ごと書き換える羽目になっていました。

MCP サーバー設定のうち認証情報(OAuth トークン、API キー、データベース接続文字列)は絶対に共有しません。共有 settings.json には「接続先 URL」「サーバー名」までを書き、認証は各自が個別にセットアップする運用にします。settings.local.json 側で mcpServers の認証情報だけを上書きする構造にすると、共有部分と個人部分がきれいに分離できます。

実用 .gitignore テンプレート

私が4つのプロジェクトで使い回している .gitignore のパターンを共有します。

# Claude Code 個人設定
.claude/settings.local.json
.claude/history/
.claude/sessions/
.claude/cache/
.claude/projects/
 
# 一時ファイル・OS固有ファイル
.claude/*.tmp
.claude/.DS_Store
 
# 認証情報の保険(万が一書いてしまった時の最後の砦)
.claude/secrets.json
.claude/.env*
.claude/**/credentials.json

逆に、.claude/commands/ .claude/agents/ .claude/settings.json CLAUDE.md は 明示的にコミット対象 とします。

.gitignore を整備したら、git status -- .claude/ で意図したファイルだけが追跡対象になっているかを必ず確認してください。新しいバージョンの Claude Code が新しいサブディレクトリを作る可能性もあるので、月に1回程度は git status -- .claude/ を眺めてみることをおすすめします。私はこの確認をしていなかった時期に、新規追加された .claude/projects/ をうっかりコミットしてしまったことがあります。

チーム展開時の段取り

個人で使っていた Claude Code をチームに広げる際は、次の順序で進めると摩擦が少なくなることに気づきました。

  1. 既存の .claude/settings.json から個人情報(トークン・絶対パス・自分のメールアドレス等)を settings.local.json に分離する
  2. .gitignore を整備し、git status -- .claude/ でクリーンな状態を確認
  3. commands/ と agents/ を整理し、チームで使うものだけを残す(試作品は _archive/ に移動か削除)
  4. CLAUDE.md の冒頭に「このリポジトリで Claude Code を使う前に読むべきこと」セクションを追加
  5. プルリクエストとして他メンバーにレビューしてもらい、意図しない個人情報が混入していないか確認

特に5番目は省略しないでください。自分では気づかない個人情報(過去のディレクトリパス、社内の社員名、サンプルとして入れたメールアドレスなど)が commands/ の .md 内に紛れ込んでいることが意外と多くあります。コミット前のレビューは、技術的な正しさよりも「公開していい情報かどうか」をチェックする場として使うのが効果的です。

CLAUDE.md の設計思想については CLAUDE.md 設計パターン — プロジェクトインテリジェンスの育て方 で詳しく扱っていますので、チームで活用する前に一読することをおすすめします。

全体を振り返って — 今日からできる小さな一歩

.claude/ の Git 戦略は、一度決めれば長く使える「土台」の部分です。今すぐすべてを整える必要はありません。今日のところは .gitignore に .claude/settings.local.json と .claude/history/ .claude/sessions/ の3行を追加し、git status -- .claude/ でクリーンになっているかを確認するだけで十分です。これだけでも、機密情報が漏れる事故の大半は防げます。

そのうえでチーム展開を考える段階になったら、コマンドとエージェントを整理し、CLAUDE.md を整える、という順序で広げていくのが、私の経験上もっとも摩擦が少ない進め方でした。Claude Code の真価は「同じ前提を共有したチーム」で使ったときに最も発揮されると感じています。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⟐ Claude Code2026-05-02
Claude Code のステータスラインを自分好みに作り変える — モデル名・残コンテキスト・Git 状態を1行で見せる設定例
現在のモデル・残コンテキスト・Gitブランチを1行で確認できるClaude Codeのステータスライン設定例を紹介します。シェルスクリプトとNode.jsの両方の実装、エラーを握りつぶして会話を壊さない工夫、アスキーで描く残コンテキストバー、プロジェクトごとの表示切り替えまで扱います。
⟐ Claude Code2026-08-28
名前に混ざった見えない文字を、プラグインを入れる前に洗い出す小さなスクリプト
プラグインやスキルの名前に不可視文字や制御文字が混ざっていても、ターミナルの一覧では見分けがつきません。実際に6つの紛らわしい名前を並べて ls の出力を比べ、導入前に走らせる点検スクリプトと、その点検が拾えない範囲までを整理しました。
⟐ Claude Code2026-08-26
キャッシュのTTLを1時間に延ばすかは、離席の長さではなく戻る場所で決めています
Claude Code v2.1.242 で promptCacheTtl と subagentPromptCacheTtl が追加されました。1時間キャッシュが効く条件は離席時間ではなく、同じ作業ディレクトリと同じ git 状態へ戻るかどうかです。判断の順番と、効いているかを確かめる手順を書き残します。