Git コミットから Co-Authored-By Claude を削除する方法
Claude Code はコミットに Co-Authored-By トレーラーを、プルリクエストに Generated with Claude Code の 1 行を付けます。それを消す設定、その設定を置くファイル、すでにプッシュしたコミットをきれいにする方法を解説します。
Claude Code にコミットを頼むと、メッセージの最後に自分で書いていない 1 行が付きます:Co-Authored-By: Claude Opus 4.6 <[email protected]>。そのままプルリクエストを開くと、説明文の最後にロボットの絵文字と「Generated with Claude Code」が付きます。どちらもバグではありません。どちらも 1 つの設定から来ていて、1 分で変更できます。
このガイドでは、その設定、自分だけ・1 つのプロジェクト・チーム全体のどれに適用するかで選ぶファイル、まだ残っているかもしれない非推奨のキー、そしてすでにこの行が付いたコミットをきれいにする方法を説明します。Claude Code に関する事実は、その設定リファレンスに基づいています。2026年11月12日に、Claude Code 2.1.318 をインストールした状態で確認しました。
短い答え。 ~/.claude/settings.json に次の内容を入れます:
{
"attribution": {
"commit": "",
"pr": ""
}
}
新しいコミットにはトレーラーが付かなくなり、新しいプルリクエストからはその行が消えます。変更前に作られたコミットは、書き換えるまでその行を持ち続けます。
Claude Code が何を、どこに追加するか
Claude Code は 3 か所にアトリビューションを追加します。それぞれに attribution の下のサブキーがあります。
| 場所 | Claude Code がデフォルトで追加するもの | サブキー |
|---|---|---|
| コミットメッセージ | トレーラー:Co-Authored-By: <model> <[email protected]> | attribution.commit |
| プルリクエストの説明文 | ロボットの絵文字と「Generated with Claude Code」 | attribution.pr |
| クラウドまたは Remote Control セッションからのコミットや PR | claude.ai のセッションリンク。コミットには Claude-Session トレーラーとして付く | attribution.sessionUrl |
トレーラーに入る名前は、コミット時点で使っているモデルの名前です。だからこの行は、ある週は Claude Opus 4.6、翌週は Claude Sonnet 4.6 になり、この問題の検索にたくさんのモデル名が出てくるのです。Claude Code が Claude のモデルだと認識してもバージョンを確認できないときは、Claude だけを書きます。カスタムの ANTHROPIC_BASE_URL の背後にあるモデルがそもそも Claude のモデルでないときは、Claude Code と書きます。サブエージェントがコミットするときは、トレーラーにはサブエージェントのモデルが入ります。
この行は git の hook ではありません。Claude 自身がコミットやプルリクエストを書くときに、Claude Code が Claude にこの行を追加するよう指示しているのです。あなたがターミナルで自分で作ったコミットや、別のツールが作ったコミットには、決して付きません。
attribution 設定でオフにする
attribution は 3 つの部分を持つオブジェクトを受け取ります。すべてをまとめてオフにするなら false です。
| 値 | 効果 |
|---|---|
"commit": "" | コミットにトレーラーを付けない |
"pr": "" | プルリクエストの説明文にアトリビューションの行を付けない |
"sessionUrl": false | クラウドまたは Remote Control セッションから作ったコミットとプルリクエストに claude.ai のセッションリンクを付けない |
"attribution": false | 3 つすべてを一度に非表示。Claude Code 2.1.281 以降が必要 |
短い書き方は魅力的ですが、まずバージョンの行を読んでください。2.1.281 より古い Claude Code は "attribution": false を受け付けず、しかもそのキーを無視するだけではありません。そのキーを含む設定ファイル全体を、権限、hook、モデルの設定ごと読み飛ばします。バージョンの異なる複数のマシンで同じファイルを読むなら、長い書き方を使いましょう:
{
"attribution": {
"commit": "",
"pr": "",
"sessionUrl": false
}
}
ファイルが読み込まれたかを確かめるには /status を実行します。Setting sources の行に、Claude Code が読んだすべてのファイルが並びます。すでに開いていたセッションがまだ行を追加し続けるなら、新しいセッションを始めてください。
どのファイルか:自分、1 つのプロジェクト、チーム全体
このキーはどの設定ファイルでも使えます。誰に適用されるかは、ファイルで決まります。
| ファイル | 適用される人 |
|---|---|
~/.claude/settings.json | あなた。このマシンのすべてのプロジェクトで |
プロジェクト内の .claude/settings.json | プロジェクトで作業する全員。ファイルをコミットした時点から |
プロジェクト内の .claude/settings.local.json | あなた。このプロジェクトでのみ。Claude Code はこのファイルを作るとき git の対象外にします |
| 組織が配布する managed settings | 組織が配布する対象の全員 |
2 つのファイルがこのキーを設定している場合は、上位のものが優先されます。順に、managed settings、コマンドラインの --settings、プロジェクトのローカルファイル、プロジェクトの共有ファイル、そしてユーザーファイルです。この順序から 2 つのケースが導けます。チームが意図的にトレーラーを残すファイルをコミットしていても、あなた自身の .claude/settings.local.json は、ほかの誰にも影響を与えずに、あなたに対してだけそれを上書きします。組織が managed settings で attribution を設定しているなら、あなたが何を書いても変わりません。
CLAUDE.md で Claude にこの行を付けないよう伝えることもできます。Claude Code は Claude に対して、アトリビューションに関するあなた自身の指示がデフォルトの行より優先されると伝えます。ただし、その行が managed settings から来ている場合は別です。違いは性質にあります。設定は Claude Code が求めるテキストそのものを取り除き、指示はモデルが読んで適用するものです。設定を使いましょう。
古い includeCoAuthoredBy キー
attribution より前は、includeCoAuthoredBy が切り替えスイッチでした。Claude Code 2.0.62 から非推奨ですが、今も読み込まれます:
"includeCoAuthoredBy": falseは、コミットのトレーラーとプルリクエストの行の両方を非表示にします。attribution.commitかattribution.prが設定された時点で、Claude Code はincludeCoAuthoredByを無視し、2 つのうち設定していない方にはデフォルトのテキストを使います。
この 2 つ目のルールが、トレーラーが戻ってくるよくある理由です。includeCoAuthoredBy: false を設定していたところに、PR の行だけを消すつもりで "attribution": {"pr": ""} を追加すると、コミットのトレーラーが再び現れます。今は attribution が決めていて、commit が設定されていないからです。attribution に移行して、両方の部分を設定しましょう。
削除する代わりに置き換える
AI の支援を受けたコミットを記録しておきたいけれど、この行では困る、というチームもあります。attribution.commit はトレーラーを含む任意のテキストを受け付けます。git がトレーラーを読むのはメッセージの最後の段落だけなので、末尾にまとめて置きましょう:
{
"attribution": {
"commit": "Assisted-by: Claude Code"
}
}
これをプロジェクトの .claude/settings.json にコミットすれば、チームメイト全員の Claude Code が同じ行を書きます。
すでにトレーラーが付いたコミット
この設定が変えるのは、設定後に書かれたコミットだけです。すでにあるコミットに使うべきツールは、それがどこまで広がったかで決まります。
最後のコミットで、まだプッシュしていない場合:amend して、エディターでその行を削除します。
git commit --amend
まだ共有していないブランチ上の複数のコミット:rebase して、1 つずつ書き直します。
git rebase -i origin/main
履歴全体:git filter-repo は、すべてのコミットメッセージを 1 回で書き換えます。新しいクローンが必要で、別途インストールするツールです:
git filter-repo --message-callback '
return re.sub(rb"(?mi)^Co-Authored-By: Claude[^\n]*<noreply@anthropic\.com>\n?", b"", message).rstrip(b"\n") + b"\n"
'
書き換えにはコストがあり、共有ブランチでは、たいていこの 1 行よりも高くつきます。最初に変更したコミット以降のコミットハッシュはすべて新しくなるため、プッシュ済みのブランチには強制プッシュが必要になり、共同作業者全員が新しい履歴からやり直すことになり、古いコミットをもとに開いたプルリクエストは壊れ、署名付きコミットは署名を失います。マージ前の個人のブランチなら、やりましょう。ほかの人がすでにプルした main ブランチなら、そのままにして、これから先のためにキーを設定しましょう。
GitHub でトレーラーが果たす役割
GitHub は Co-authored-by トレーラーを読み取り、そのメールアドレスが GitHub アカウントに属していれば、コミットに共同作成者として表示します。2025年6月、anthropics/claude-code リポジトリの 2 つの issue(#1653 と #1655)が、そのアドレスを通じて Anthropic と無関係な GitHub アカウントにコミットが紐づけられたと報告しました。どちらもクローズされています。ある日そのアドレスがどのアカウントに結びつくにせよ、トレーラーを消せば、それ以降のコミットから共同作成者が消えます。消えるのはそれ以降のコミットからだけです。
ほかの CLI はどうしているか
自分の仕事に署名するのは Claude Code だけではなく、CLI ごとに独自のスイッチがあります。
- Codex. 2026年11月12日に私たちが読んだ
openai/codexのソースでは、ワークスペースでアトリビューションが有効になっている場合、Codex はコミットにCo-authored-by: Codex <[email protected]>を、プルリクエストの本文に「Generated with Codex.」を追加します。これはセッション開始時に取得するポリシーです。ポリシーがオフのときは、どちらの行も追加しないよう Codex に指示されます。 - Aider. トレーラーを追加するのではなく、git の author と committer の名前に「(aider)」を付け加えます。
--no-attribute-authorと--no-attribute-committerでそれをオフにでき、--attribute-co-authored-byを使うと代わりにCo-authored-byトレーラーになります。
AgentsRoom ではどうしているか
私たちは毎日、同じリポジトリで複数のエージェントを動かしています。Claude Code の隣に Codex やほかのエージェントがいて、それぞれの仕事が出会う場所がコミットです。ケースは 2 つあり、同じルールには従いません。
エージェントがターミナルで自分でコミットするときは、その CLI がメッセージを書くので、CLI 自身の設定が適用されます。Claude Code なら attribution、Codex ならワークスペースのポリシー、Aider ならフラグです。
あなたが AgentsRoom からコミットするとき、つまり「変更」タブ、レビューモード、エージェントを閉じるときの自動コミット、あるいはモバイルアプリの「変更」画面からコミットするときは、AgentsRoom がコミットを書くので、どの CLI もトレーラーを追加しません。末尾に入るのは AgentsRoom のコミット署名で、内容はあなたが決めます。デフォルトでは、コミットにファイルが含まれる各エージェントのロールと、そのエージェントが費やした時間を 1 行で追加します:
bug : Fix the login redirect
AgentsRoom-Agent: fullstack; time=42m
各項目は、設定 > Git > コミット署名 にある個別のスイッチで、アカウント全体、プロジェクトのフォルダー、または 1 つのプロジェクトごとに切り替えられます。エージェントのロール、作業時間、そしてデフォルトではオフのコスト、クォータの使用割合、あなたが入力したプロンプトです。エージェントと作業時間をオフにすれば、コミットは以前とまったく同じになります。私たち自身のリポジトリではロールをオンにしています。4 つの CLI がコミットするリポジトリでは、モデル名はどのモデルがコードを書いたかを示し、ロールはそれがどんな仕事をしていたかを示します。3 週間後に変更が何かを壊したとき、私たちが探すのはそれです。公開している変更履歴も同じ行を読み取り、各リリースにどのエージェントが関わったかを表示しています。
変更の背後にある推論も残したいなら、コミットコンテキストが同じトレーラーのブロックにエージェントの会話へのリンクを追加します。メッセージを自分で書きたくないなら、AI コミットメッセージが diff から下書きします。
よくある質問
コミットから Co-Authored-By Claude を削除するには?
~/.claude/settings.json に "attribution": {"commit": "", "pr": ""} を追加します。すると Claude Code は、そのマシンのすべてのプロジェクトで、自分が書くコミットに Co-Authored-By トレーラーを、自分が開くプルリクエストに Generated with Claude Code の行を付けなくなります。Claude Code 2.1.281 以降なら、"attribution": false の 1 つの値ですべてを非表示にできます。変更前に作られたコミットにはトレーラーが残ります。
includeCoAuthoredBy はまだ使えますか?
まだ使えますが、Claude Code 2.0.62 から非推奨です。includeCoAuthoredBy: false はコミットのトレーラーとプルリクエストの行の両方を非表示にします。ただし、新しいキー attribution で commit または pr が設定されている場合は、attribution が優先されます。新しく設定するなら attribution を使いましょう。
トレーラーが Claude ではなく Claude Opus 4.6 や Sonnet 4.6 になるのはなぜですか?
トレーラーにはコミット時点で使っているモデルの名前が入るので、モデルを変えると内容も変わります。Claude Code は正確なバージョンを確認できないときは Claude だけを書き、カスタムの ANTHROPIC_BASE_URL の背後にあるモデルが Claude のモデルでないときは Claude Code と書きます。この設定は、これらすべてのバリエーションを消します。
すでに作ったコミットからトレーラーを消すには?
最後のコミットなら、git commit --amend を実行してその行を削除します。まだプッシュしていない複数のコミットなら、git rebase -i を使って書き直します。履歴全体なら、git filter-repo に message callback を渡すと、新しいクローン上ですべてのコミットからその行を取り除けます。書き換えると、最初に触ったコミット以降のすべてのコミットハッシュが変わるため、プッシュ済みの履歴には強制プッシュが必要になり、共同作業者全員が新しい履歴からやり直す必要があります。
会社がアトリビューションを強制的に元に戻すことはできますか?
はい。組織が配布する managed settings は、あなたが管理するどのファイルよりも上位にあるので、そこで設定された attribution の値は、ユーザー、プロジェクト、ローカルの設定より優先されます。Claude Code で /status を実行してください。Setting sources の行に、managed のソースがあなたに適用されているかどうかが表示されます。
トレーラーを消すと、AI を使ったことが隠れますか?
コミットメッセージから 1 行が消えるだけで、それ以外は何も変わりません。この設定は Claude Code 自身が用意しているもので、そのドキュメントもこの行を残すよう求めてはいません。ただし、AI の支援を明記するようコントリビューターに求めるプロジェクトや雇用主もあるので、オフにする前に、プッシュ先のリポジトリのルールを読んでください。
AgentsRoomをダウンロード
すべてのAIエージェントを、すべてのプロジェクトで、ひとつのウィンドウから実行。
コンパニオンアプリ:外出先でもエージェントを確認
Claude、Codex、Antigravity CLI、またはその他の AI プロバイダーを使用します。
バグや要望を公開バックログに直接送信できます。
続きを読む
Claude Code のモッドとは何か、そして全エージェントに組み込んでいるモッド
モッドとは、JavaScript が Claude Code の中で動くプラグインです。できること、3 つのファイル、読み込み方とテスト方法、そして私たちが全エージェントに組み込んでいるモッドを紹介します。
記事を読むMCP のトークン消費を減らす:ツール定義を 60% 削った方法
エージェントが呼び出せる MCP ツールは、どれもモデルがリクエストのたびに読む可能性のある JSON の塊です。私たちのツールは約 95,000 トークンありました。自分のツールを 2 分で測る方法、ツールを 1 つも削除せずに削ったもの、そして再び膨らむのを防ぐ予算チェックを紹介します。
記事を読むコーディングにおすすめの AI は? 開発者 1,200 人が実際に起動しているモデル
28 日間で 205,366 回のエージェント起動:1 位は Opus、2 位は GPT-6.1 Sol、そしてアカウントの半数は私たちがデフォルトで提案しているモデルを使っています。数字が証明していることと、証明できないことをまとめました。
記事を読む
