如何從 Git 提交中去掉 Co-Authored-By Claude

Claude Code 會給你的提交加上 Co-Authored-By 尾註,給你的 pull request 加上一行 Generated with Claude Code。去掉它們的設定、該放進哪個檔案,以及如何清理已經推送的提交。

讓 Claude Code 提交,資訊末尾就多了一行不是你寫的:Co-Authored-By: Claude Opus 4.6 <[email protected]>。用它開 pull request,描述末尾會多出機器人表情和「Generated with Claude Code」。兩者都不是 bug,都來自同一設定,一分鐘就能改。

本指南介紹這個設定、放進哪個檔案才能作用於你自己、一個專案或整個團隊、你可能還留著的已棄用鍵,以及如何清理已帶這一行的提交。關於 Claude Code 的事實來自其設定參考文件,於 2026 年 11 月 12 日在 Claude Code 2.1.318 上查閱。

簡短的答案。 把這段放進 ~/.claude/settings.json:

{
  "attribution": {
    "commit": "",
    "pr": ""
  }
}

新提交不再帶尾註,新 pull request 也沒有那一行。修改前的提交會保留它,直到你改寫。

Claude Code 加了什麼,加在哪裡

Claude Code 在三處新增歸屬資訊,每處在 attribution 下都有自己的子鍵。

位置Claude Code 預設新增的內容子鍵
提交資訊一條尾註:Co-Authored-By: <model> <[email protected]>attribution.commit
PR 描述一個機器人表情和「Generated with Claude Code」attribution.pr
雲端或 Remote Control 會話的提交或 PRclaude.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 自己寫提交或 PR 時,Claude Code 讓 Claude 加上的。你在終端裡自己做的或其他工具做的提交,永遠不會帶它。

用 attribution 設定關掉它

attribution 接受一個三部分的物件,或用 false 全部關掉。

值效果
"commit": ""提交不帶尾註
"pr": ""PR 描述裡不帶歸屬行
"sessionUrl": false雲端或 Remote Control 會話的提交和 PR 不帶 claude.ai 會話連結
"attribution": false一次隱藏全部三項。需要 Claude Code 2.1.281 或更高

簡寫很誘人,但先看版本那一行。低於 2.1.281 的 Claude Code 會拒絕 "attribution": false,而且不只是忽略這個鍵:它會跳過包含它的整個設定檔案,連同你的權限、hook 和模型。同一檔案若在不同版本的機器上讀取,就用完整寫法:

{
  "attribution": {
    "commit": "",
    "pr": "",
    "sessionUrl": false
  }
}

執行 /status 確認檔案已載入:Setting sources 一行列出 Claude Code 讀取的每個檔案。已開啟的會話若還在加那一行,就新開一個。

放哪個檔案:你自己、一個專案,還是整個團隊

這個鍵在所有設定檔案裡都有效,作用於誰由檔案決定。

檔案作用於誰
~/.claude/settings.json你,在這台機器的所有專案裡
專案中的 .claude/settings.json在專案裡工作的所有人,從你提交該檔案起
專案中的 .claude/settings.local.json你,僅限此專案。Claude Code 建立它時會將其排除在 git 之外
組織下發的 managed settings組織下發到的所有人

兩個檔案都設定了這個鍵時,層級高的勝出:managed settings,其次是命令列的 --settings、專案本地檔案、專案共享檔案,最後是你的使用者檔案。由此有兩種情況。團隊提交了一個特意保留尾註的檔案時,你自己的 .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 同時隱藏提交尾註和 PR 那一行;
  • 一旦設定 attribution.commit 或 attribution.pr,Claude Code 就忽略 includeCoAuthoredBy,對你沒設定的那一項用預設文字。

第二條規則正是尾註常又冒出來的原因。你原有 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 並逐個改寫。

git rebase -i origin/main

整個歷史:git filter-repo 一次改寫每條提交資訊。它需要全新的克隆,且要單獨安裝:

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"
'

改寫有代價,在共享分支上通常比那一行更高。第一個被修改的提交之後,每個提交雜湊都是新的:已推送的分支需要強制推送,每位協作者都得從新歷史重新開始,基於舊提交的 PR 會失效,簽名的提交會丟失簽名。合併前的個人分支,放手去做。別人已拉取的 main 分支,就別動,設定好鍵管住以後。

尾註在 GitHub 上起什麼作用

GitHub 會讀取 Co-authored-by 尾註,信箱地址屬於某個 GitHub 帳戶時,就在提交上顯示這位共同作者。2025 年 6 月,anthropics/claude-code 儲存庫的兩個 issue(#1653 和 #1655)報告提交透過這個地址被歸到一個與 Anthropic 無關的 GitHub 帳戶;兩者都已關閉。無論這個地址某天指向誰,去掉尾註都會讓之後的提交不再有這位共同作者,且只影響之後的提交。

其他 CLI 怎麼做

給自己工作署名的不只是 Claude Code,每個 CLI 都有自己的開關。

  • Codex. 在我們 2026 年 11 月 12 日讀到的 openai/codex 原始碼中,你的工作區啟用歸屬資訊時,Codex 會在提交上加 Co-authored-by: Codex <[email protected]>,在 PR 正文里加「Generated with Codex.」,這項策略在會話開始時拉取。策略關閉時,Codex 被告知兩行都不加。
  • Aider. 它不加尾註,而是在 git 作者和提交者名字後加「(aider)」。--no-attribute-author 和 --no-attribute-committer 可關掉它,--attribute-co-authored-by 則改為加 Co-authored-by 尾註。

我們在 AgentsRoom 裡怎麼做

我們每天在同一批儲存庫上執行多個代理,Claude Code 旁邊是 Codex 等,提交正是它們工作匯合的地方。有兩種情況,規則不同。

代理在自己終端裡自行提交時,資訊由它的 CLI 寫,所以適用 CLI 自己的設定:Claude Code 用 attribution,Codex 用工作區策略,Aider 用命令列引數。

你從 AgentsRoom 提交時,無論是「更改」分頁、審查模式、代理關閉時的自動提交,還是手機應用的「更改」介面,提交都由 AgentsRoom 寫,沒有 CLI 會加尾註。末尾放的是 AgentsRoom 的提交署名,由你設定。預設它加一行,寫明檔案在提交中的每個代理的角色和所花時間:

bug : Fix the login redirect

AgentsRoom-Agent: fullstack; time=42m

每部分都是 設定 > Git > 提交署名 裡的獨立開關,可針對你的帳戶、一個專案資料夾或單個專案:代理角色、耗時,以及預設關閉的成本、配額佔比和你輸入的提示詞。關掉代理和耗時,提交就和以前一模一樣。我們自己的儲存庫保留角色:在四個 CLI 都會提交的儲存庫裡,模型名說明是哪個模型寫的程式碼,角色說明它在做什麼工作,三週後某個改動弄壞東西時,我們找的正是這個。我們公開的更新日誌也讀取這一行,展示每個版本有哪些代理參與。

想留下改動背後的推理,Commit Context 會在同一尾註塊里加上指向代理對話的連結。連資訊都不想寫,AI 提交訊息會根據 diff 起草。

常見問題

如何從我的提交中去掉 Co-Authored-By Claude?

在 ~/.claude/settings.json 里加上 "attribution": {"commit": "", "pr": ""}。此後在這台機器的所有專案裡,Claude Code 不再給它寫的提交加 Co-Authored-By 尾註,也不再給它開的 PR 加 Generated with Claude Code 一行。Claude Code 2.1.281 及以上,"attribution": false 一個值即可全部隱藏。修改前的提交保留尾註。

includeCoAuthoredBy 還能用嗎?

能用,但自 Claude Code 2.0.62 起已棄用。includeCoAuthoredBy: false 同時隱藏提交尾註和 PR 那一行,除非較新的 attribution 鍵設定了 commit 或 pr,這時以 attribution 為準。新配置請用 attribution。

為什麼尾註寫的是 Claude Opus 4.6 或 Sonnet 4.6,而不是 Claude?

尾註寫的是提交時所用的模型,會隨你的模型變化。Claude Code 無法確認確切版本時只寫 Claude,自定義 ANTHROPIC_BASE_URL 背後不是 Claude 模型時寫 Claude Code。這個設定會去掉所有這些變體。

如何從已經做好的提交裡去掉尾註?

最後一次提交:執行 git commit --amend 刪掉那一行。幾個未推送的提交:用 git rebase -i 逐個改寫。整個歷史:用帶 message callback 的 git filter-repo,在全新克隆上去掉每個提交裡的那一行。改寫會改變第一個被改動提交之後所有提交的雜湊,所以已推送的歷史需要強制推送,每位協作者都得從新歷史重新開始。

公司能強制重新開啟歸屬資訊嗎?

能。組織下發的 managed settings 位於你能控制的所有檔案之上,在那裡設定的 attribution 值會覆蓋你的使用者、專案和本地設定。在 Claude Code 裡執行 /status:Setting sources 一行顯示是否有 managed 來源作用於你。

去掉尾註會掩蓋我用過 AI 嗎?

它只從提交資訊裡去掉一行,別的都不變。這個設定由 Claude Code 自己提供,其文件也沒要求保留這一行。不過有些專案和僱主要求貢獻者宣告 AI 協助,關閉前請先讀讀你要推送的儲存庫的規則。

DevOps 工程師撰稿人前端開發者銷售代表後端開發者教練與培訓師軟體架構師法律顧問QA 工程師財務與行政全棧開發者創意設計師移動開發者研究員安全工程師人事與招聘
專案經理翻譯Git 專家資料分析師SEO 專家會計本地化專員公關與傳播頭腦風暴者營運與物流營銷專員客戶服務專案助理採購專員社群營運私人助理

下載 AgentsRoom

在一個視窗中執行你所有專案的所有 AI 代理。

下載 AgentsRoom免費

配套應用:隨時隨地監控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

獲取擴充功能
Chrome Web Store

把 Bug 和需求直接傳送到您的公開待辦清單。

像讀聊天記錄一樣讀代理

每個代理都有角色、頭像和一條對話執行緒,讀起來就像聊天應用。

對話檢視

AgentsRoom 對話檢視:AI 程式設計代理的工作以聊天執行緒呈現
多專案管理
多供應商
多代理執行
即時狀態
檔案差異與提交
行動應用
即時預覽
代理團隊
瀏覽器自動化
Backlog 驅動開發
提示詞庫
技能庫
檢視所有功能

繼續閱讀