如何從 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 會話的提交或 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 自己寫提交或 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 協助,關閉前請先讀讀你要推送的儲存庫的規則。
下載 AgentsRoom
在一個視窗中執行你所有專案的所有 AI 代理。
配套應用:隨時隨地監控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接傳送到您的公開待辦清單。
繼續閱讀
Claude Code mod:它是什麼,以及我們給每個代理都裝上的那個 mod
mod 是一種讓 JavaScript 在 Claude Code 內部執行的外掛。它能做什麼、由哪三個檔案組成、如何載入和測試,以及我們給每個代理都裝上的那個 mod。
閱讀全文減少 MCP 令牌消耗:我們如何把工具定義削減 60%
代理能呼叫的每個 MCP 工具,都是模型可能在每次請求時讀取的一段 JSON。我們的工具大約有 95,000 個令牌。本文介紹如何在兩分鐘內測量你自己的工具,我們在不刪除任何工具的前提下削減了什麼,以及防止它再次膨脹的預算檢查。
閱讀全文寫程式碼用哪個 AI 最好?1,200 位開發者實際啟動的模型
28 天內 205,366 次代理啟動:Opus 第一,GPT-6.1 Sol 第二,一半帳號用的是我們預設推薦的模型。這些數字能證明什麼,又不能證明什麼。
閱讀全文
