วิธีลบ Co-Authored-By Claude ออกจากคอมมิต Git ของคุณ
Claude Code เซ็นชื่อคอมมิตของคุณด้วย trailer 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" ทั้งสองอย่างไม่ใช่บั๊ก ทั้งคู่มาจากการตั้งค่าเดียว และคุณเปลี่ยนมันได้ในหนึ่งนาที
คู่มือนี้ครอบคลุมการตั้งค่านั้น ไฟล์ที่ต้องใส่เพื่อให้มันมีผลกับคุณ กับโปรเจกต์เดียว หรือกับทั้งทีม คีย์เก่าที่ถูกประกาศเลิกใช้ซึ่งคุณอาจยังมีอยู่ และวิธีล้างคอมมิตที่มีบรรทัดนั้นอยู่แล้ว ข้อมูลเกี่ยวกับ Claude Code มาจากเอกสารอ้างอิงการตั้งค่าของมัน ซึ่งเราอ่านเมื่อวันที่ 12 พฤศจิกายน 2026 โดยติดตั้ง Claude Code 2.1.318 ไว้
คำตอบสั้น ๆ ใส่สิ่งนี้ลงใน ~/.claude/settings.json:
{
"attribution": {
"commit": "",
"pr": ""
}
}
คอมมิตใหม่จะไม่มี trailer อีกต่อไป pull request ใหม่จะไม่มีบรรทัดนั้น คอมมิตที่ทำก่อนการเปลี่ยนแปลงยังคงมีมันอยู่จนกว่าคุณจะเขียนคอมมิตเหล่านั้นใหม่
สิ่งที่ Claude Code เพิ่ม และเพิ่มไว้ที่ไหน
Claude Code เพิ่มการระบุที่มาไว้สามที่ แต่ละที่มีคีย์ย่อยของตัวเองอยู่ใต้ attribution
| ที่ไหน | สิ่งที่ Claude Code เพิ่มโดยค่าเริ่มต้น | คีย์ย่อย |
|---|---|---|
| ข้อความคอมมิต | trailer หนึ่งบรรทัด: Co-Authored-By: <model> <[email protected]> | attribution.commit |
| คำอธิบาย pull request | อีโมจิหุ่นยนต์และ "Generated with Claude Code" | attribution.pr |
| คอมมิตหรือ PR จากเซสชันคลาวด์หรือ Remote Control | ลิงก์เซสชัน claude.ai ในรูปของ trailer Claude-Session บนคอมมิต | attribution.sessionUrl |
ชื่อใน trailer คือโมเดลที่ใช้อยู่ตอนที่ทำคอมมิต นั่นคือเหตุผลที่บรรทัดนี้เขียนว่า Claude Opus 4.6 ในสัปดาห์หนึ่ง และ Claude Sonnet 4.6 ในสัปดาห์ถัดไป และเป็นเหตุผลที่การค้นหาเกี่ยวกับปัญหานี้มีชื่อโมเดลมากมาย เมื่อ Claude Code รู้ว่าเป็นโมเดล Claude แต่ยืนยันเวอร์ชันไม่ได้ มันจะเขียน Claude เพียงคำเดียว เมื่อโมเดลเบื้องหลัง ANTHROPIC_BASE_URL ที่กำหนดเองไม่ใช่โมเดล Claude เลย มันจะเขียน Claude Code เมื่อ subagent เป็นผู้ทำคอมมิต trailer จะระบุชื่อโมเดลของ subagent นั้น
บรรทัดนี้ไม่ใช่ git hook Claude Code บอกให้ Claude เพิ่มมันเมื่อ Claude เขียนคอมมิตหรือ pull request เอง คอมมิตที่คุณทำเองในเทอร์มินัล หรือคอมมิตที่เครื่องมืออื่นทำ จะไม่มีวันได้รับบรรทัดนี้
ปิดด้วยการตั้งค่า attribution
attribution รับออบเจกต์ที่มีสามส่วน หรือ false เพื่อปิดทั้งหมด
| ค่า | ผล |
|---|---|
"commit": "" | ไม่มี trailer บนคอมมิต |
"pr": "" | ไม่มีบรรทัดระบุที่มาในคำอธิบาย pull request |
"sessionUrl": false | ไม่มีลิงก์เซสชัน claude.ai บนคอมมิตและ pull request ที่ทำจากเซสชันคลาวด์หรือ Remote Control |
"attribution": false | ซ่อนทั้งสามอย่างในครั้งเดียว ต้องใช้ Claude Code 2.1.281 ขึ้นไป |
รูปแบบสั้นนั้นน่าใช้ แต่อ่านบรรทัดเรื่องเวอร์ชันก่อน Claude Code ที่เก่ากว่า 2.1.281 จะปฏิเสธ "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 บนบรรทัดคำสั่ง ตามด้วยไฟล์ local ของโปรเจกต์ ตามด้วยไฟล์ที่แชร์กันของโปรเจกต์ แล้วจึงเป็นไฟล์ผู้ใช้ของคุณ ลำดับนี้ทำให้เกิดสองกรณี หากทีมของคุณคอมมิตไฟล์ที่ตั้งใจเก็บ trailer ไว้ .claude/settings.local.json ของคุณเองจะทับค่านั้นสำหรับคุณ โดยไม่เปลี่ยนอะไรสำหรับคนอื่น หากองค์กรของคุณตั้งค่าการระบุที่มาไว้ใน managed settings ไม่มีอะไรที่คุณเขียนจะเปลี่ยนมันได้
คุณยังบอก Claude ใน CLAUDE.md ของคุณได้ว่าอย่าเพิ่มบรรทัดนั้น และ Claude Code ก็บอก Claude ว่าคำสั่งของคุณเองเรื่องการระบุที่มามีความสำคัญเหนือบรรทัดเริ่มต้นของมัน เว้นแต่บรรทัดนั้นมาจาก managed settings ความแตกต่างอยู่ที่ธรรมชาติของมัน: การตั้งค่าลบข้อความที่ Claude Code ขอให้เพิ่ม ส่วนคำสั่งคือสิ่งที่โมเดลอ่านแล้วนำไปปฏิบัติ ใช้การตั้งค่า
คีย์เก่า includeCoAuthoredBy
ก่อนจะมี attribution สวิตช์นี้คือ includeCoAuthoredBy มันถูกประกาศเลิกใช้ตั้งแต่ Claude Code 2.0.62 แต่ยังถูกอ่านอยู่:
"includeCoAuthoredBy": falseซ่อนทั้ง trailer ของคอมมิตและบรรทัดของ pull request- ทันทีที่ตั้งค่า
attribution.commitหรือattribution.prClaude Code จะเพิกเฉยต่อincludeCoAuthoredByและใช้ข้อความเริ่มต้นของมันกับส่วนใดก็ตามในสองส่วนที่คุณไม่ได้ตั้งไว้
กฎข้อที่สองนี้คือสาเหตุที่พบบ่อยที่ทำให้ trailer กลับมา คุณเคยมี includeCoAuthoredBy: false แล้วเพิ่ม "attribution": {"pr": ""} เพื่อลบเฉพาะบรรทัดของ PR แล้ว trailer ของคอมมิตก็กลับมาอีก เพราะตอนนี้ attribution เป็นตัวตัดสิน และ commit ไม่ได้ถูกตั้งไว้ ย้ายไปใช้ attribution และตั้งค่าทั้งสองส่วน
แทนที่บรรทัดนี้แทนการลบทิ้ง
บางทีมต้องการเก็บร่องรอยว่าคอมมิตไหนได้รับความช่วยเหลือจาก AI เพียงแต่ไม่ใช่ด้วยบรรทัดนั้น attribution.commit รับข้อความอะไรก็ได้ รวมถึง trailer ด้วย Git อ่าน trailer จากย่อหน้าสุดท้ายของข้อความเท่านั้น ดังนั้นให้วาง trailer ไว้ด้วยกันตอนท้าย:
{
"attribution": {
"commit": "Assisted-by: Claude Code"
}
}
คอมมิตสิ่งนี้ลงใน .claude/settings.json ของโปรเจกต์ แล้ว Claude Code ของเพื่อนร่วมทีมทุกคนจะเขียนบรรทัดเดียวกัน
คอมมิตที่มี trailer อยู่แล้ว
การตั้งค่านี้เปลี่ยนเฉพาะคอมมิตที่เขียนหลังจากนั้น สำหรับคอมมิตที่มีอยู่แล้ว เครื่องมือที่เหมาะสมขึ้นอยู่กับว่าคอมมิตเหล่านั้นไปไกลแค่ไหนแล้ว
คอมมิตล่าสุดที่ยังไม่ได้พุช: amend มันแล้วลบบรรทัดนั้นในเอดิเตอร์
git commit --amend
หลายคอมมิตบน branch ที่คุณยังไม่ได้แชร์: rebase แล้วแก้ข้อความทีละคอมมิต
git rebase -i origin/main
ทั้งประวัติ: git filter-repo เขียนข้อความของทุกคอมมิตใหม่ในรอบเดียว มันต้องใช้ clone ใหม่ และเป็นเครื่องมือแยกที่ต้องติดตั้งเพิ่ม:
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"
'
การเขียนใหม่มีต้นทุน และบน branch ที่แชร์กัน ต้นทุนนั้นมักสูงกว่าตัวบรรทัดเอง hash ของทุกคอมมิตหลังจากคอมมิตแรกที่ถูกแก้จะกลายเป็นของใหม่ ดังนั้น branch ที่พุชแล้วต้อง force push ผู้ร่วมงานทุกคนต้องเริ่มใหม่จากประวัติใหม่ pull request ที่เปิดอยู่ซึ่งอิงกับคอมมิตเก่าจะพัง และคอมมิตที่เซ็นไว้จะเสียลายเซ็น บน branch ส่วนตัวก่อน merge ทำได้เลย บน branch main ที่คนอื่นดึงไปแล้ว ปล่อยไว้อย่างนั้นและตั้งคีย์ไว้สำหรับคอมมิตต่อจากนี้
trailer ทำอะไรบน GitHub
GitHub อ่าน trailer Co-authored-by และแสดงผู้ร่วมเขียนบนคอมมิตเมื่ออีเมลนั้นเป็นของบัญชี GitHub ในเดือนมิถุนายน 2025 มี issue สองรายการใน repository anthropics/claude-code (#1653 และ #1655) รายงานว่าคอมมิตถูกระบุผ่านอีเมลนั้นไปยังบัญชี GitHub ที่ไม่เกี่ยวข้องกับ Anthropic ทั้งสองรายการถูกปิดแล้ว ไม่ว่าอีเมลนั้นจะชี้ไปที่บัญชีใดในวันใดวันหนึ่ง การลบ trailer จะลบผู้ร่วมเขียนออกจากคอมมิตที่ตามมา และจากคอมมิตเหล่านั้นเท่านั้น
CLI อื่น ๆ ทำอย่างไร
Claude Code ไม่ใช่ตัวเดียวที่เซ็นชื่อบนงานของตัวเอง และ CLI แต่ละตัวมีสวิตช์ของตัวเอง
- Codex. ในซอร์สโค้ด
openai/codexที่เราอ่านเมื่อวันที่ 12 พฤศจิกายน 2026 Codex เพิ่มCo-authored-by: Codex <[email protected]>ลงในคอมมิต และเพิ่ม "Generated with Codex." ลงในเนื้อหา pull request เมื่อเปิดการระบุที่มาไว้สำหรับ workspace ของคุณ ซึ่งเป็นนโยบายที่มันดึงมาตอนเริ่มเซสชัน เมื่อนโยบายนี้ปิดอยู่ Codex จะได้รับคำสั่งไม่ให้เพิ่มบรรทัดใดเลย - Aider. มันต่อท้าย "(aider)" เข้ากับชื่อผู้เขียนและผู้คอมมิตของ git แทนการเพิ่ม trailer
--no-attribute-authorและ--no-attribute-committerปิดพฤติกรรมนี้ และ--attribute-co-authored-byเปลี่ยนไปใช้ trailerCo-authored-byแทน
สิ่งที่เราทำใน AgentsRoom
เรารันเอเจนต์หลายตัวบน repository เดียวกันทุกวัน Claude Code ข้าง ๆ Codex และตัวอื่น ๆ และคอมมิตคือจุดที่งานของพวกมันมาบรรจบกัน มีสองกรณี และทั้งสองกรณีไม่ได้ใช้กฎเดียวกัน
เมื่อเอเจนต์คอมมิตเองในเทอร์มินัลของมัน CLI ของมันเป็นผู้เขียนข้อความ ดังนั้นการตั้งค่าของ CLI นั้นจึงมีผล: attribution สำหรับ Claude Code นโยบายของ workspace สำหรับ Codex และแฟล็กสำหรับ Aider
เมื่อคุณคอมมิตจาก AgentsRoom ไม่ว่าจากแท็บ Changes โหมดการตรวจสอบ การคอมมิตอัตโนมัติเมื่อเอเจนต์ปิดตัวลง หรือหน้าจอ Changes ของแอปบนโทรศัพท์ AgentsRoom เป็นผู้เขียนคอมมิต และไม่มี CLI ใดเพิ่ม trailer ของตัวเอง สิ่งที่อยู่ด้านล่างคือ ลายเซ็นคอมมิต ของ AgentsRoom และคุณเป็นคนกำหนดเอง โดยค่าเริ่มต้น มันเพิ่มหนึ่งบรรทัดที่มีบทบาทของเอเจนต์แต่ละตัวที่มีไฟล์อยู่ในคอมมิต และเวลาที่เอเจนต์นั้นใช้:
bug : Fix the login redirect
AgentsRoom-Agent: fullstack; time=42m
แต่ละส่วนเป็นสวิตช์แยกกันใน การตั้งค่า > Git > ลายเซ็นคอมมิต สำหรับบัญชีของคุณ โฟลเดอร์ของโปรเจกต์ หรือโปรเจกต์เดียว: บทบาทของเอเจนต์ เวลาที่ใช้ และส่วนที่ปิดไว้โดยค่าเริ่มต้น ได้แก่ ค่าใช้จ่าย สัดส่วนโควตาที่ใช้ไป และพรอมต์ที่คุณพิมพ์ ปิด “เอเจนต์” และ “เวลาที่ใช้” แล้วคอมมิตของคุณจะเหมือนเดิมทุกประการ เราเปิดบทบาทไว้ใน repository ของเราเอง: บน repository ที่มี CLI สี่ตัวคอมมิตอยู่ ชื่อโมเดลบอกว่าโมเดลไหนเขียนโค้ด ส่วนบทบาทบอกว่ามันกำลังทำงานอะไร ซึ่งเป็นสิ่งที่เรามองหาเมื่อการเปลี่ยนแปลงหนึ่งทำให้บางอย่างพังในอีกสามสัปดาห์ต่อมา changelog สาธารณะของเราอ่านบรรทัดเดียวกันนี้เพื่อแสดงว่าเอเจนต์ใดทำงานในแต่ละรีลีส
หากคุณต้องการเหตุผลเบื้องหลังการเปลี่ยนแปลงด้วย Commit Context จะเพิ่มลิงก์ไปยังบทสนทนาของเอเจนต์ในบล็อก trailer เดียวกัน และเมื่อคุณไม่อยากเขียนข้อความเองเลย ข้อความการคอมมิต AI จะร่างข้อความให้จาก diff
คำถามที่พบบ่อย
จะลบ Co-Authored-By Claude ออกจากคอมมิตของฉันได้อย่างไร?
เพิ่ม "attribution": {"commit": "", "pr": ""} ลงใน ~/.claude/settings.json จากนั้น Claude Code จะหยุดเพิ่ม trailer Co-Authored-By ลงในคอมมิตที่มันเขียน และหยุดเพิ่มบรรทัด Generated with Claude Code ลงใน pull request ที่มันเปิด ในทุกโปรเจกต์บนเครื่องนั้น สำหรับ Claude Code 2.1.281 ขึ้นไป "attribution": false ซ่อนทุกอย่างได้ด้วยค่าเดียว คอมมิตที่ทำก่อนการเปลี่ยนแปลงยังคงมี trailer อยู่
includeCoAuthoredBy ยังใช้ได้อยู่ไหม?
ยังใช้ได้ แต่ถูกประกาศเลิกใช้ตั้งแต่ Claude Code 2.0.62 includeCoAuthoredBy: false ซ่อนทั้ง trailer ของคอมมิตและบรรทัดของ pull request เว้นแต่คีย์ attribution ที่ใหม่กว่าจะตั้งค่า commit หรือ pr ไว้ ในกรณีนั้น attribution จะเป็นฝ่ายชนะ การตั้งค่าใหม่ควรใช้ attribution
ทำไม trailer ถึงเขียนว่า Claude Opus 4.6 หรือ Sonnet 4.6 แทนที่จะเป็น Claude?
trailer ระบุชื่อโมเดลที่ใช้อยู่ตอนที่ทำคอมมิต จึงเปลี่ยนไปตามโมเดลของคุณ Claude Code เขียน Claude เพียงคำเดียวเมื่อยืนยันเวอร์ชันที่แน่นอนไม่ได้ และเขียน Claude Code เมื่อโมเดลเบื้องหลัง ANTHROPIC_BASE_URL ที่กำหนดเองไม่ใช่โมเดล Claude การตั้งค่านี้ลบทุกรูปแบบเหล่านี้ออก
จะลบ trailer ออกจากคอมมิตที่ทำไปแล้วได้อย่างไร?
สำหรับคอมมิตล่าสุด ให้รัน git commit --amend แล้วลบบรรทัดนั้น สำหรับหลายคอมมิตที่ยังไม่ได้พุช ให้ใช้ git rebase -i แล้วแก้ข้อความทีละคอมมิต สำหรับทั้งประวัติ git filter-repo ที่ใช้ message callback จะลบบรรทัดนั้นออกจากทุกคอมมิต บน clone ใหม่ การเขียนใหม่จะเปลี่ยน hash ของทุกคอมมิตหลังจากคอมมิตแรกที่ถูกแก้ ดังนั้นประวัติที่พุชไปแล้วต้อง force push และผู้ร่วมงานทุกคนต้องเริ่มจากประวัติใหม่
บริษัทของฉันบังคับเปิดการระบุที่มากลับคืนได้ไหม?
ได้ managed settings ที่องค์กรแจกจ่ายอยู่เหนือทุกไฟล์ที่คุณควบคุม ดังนั้นค่า attribution ที่ตั้งไว้ตรงนั้นจะชนะการตั้งค่าระดับผู้ใช้ ระดับโปรเจกต์ และระดับ local ของคุณ รัน /status ใน Claude Code: บรรทัด Setting sources จะแสดงว่ามีแหล่ง managed ที่มีผลกับคุณหรือไม่
การลบ trailer เป็นการซ่อนว่าฉันใช้ AI หรือไม่?
มันลบบรรทัดเดียวออกจากข้อความคอมมิต ไม่มีอะไรอื่น Claude Code เป็นผู้เสนอการตั้งค่านี้เอง และเอกสารของมันไม่ได้ขอให้คุณเก็บบรรทัดนั้นไว้ แต่บางโปรเจกต์และบางนายจ้างขอให้ผู้ร่วมพัฒนาแจ้งเมื่อได้รับความช่วยเหลือจาก AI ดังนั้นอ่านกฎของ repository ที่คุณพุชไปก่อนจะปิดมันที่นั่น
ดาวน์โหลด AgentsRoom
รันเอเจนต์ AI ทั้งหมดของคุณในทุกโปรเจกต์ จากหน้าต่างเดียว
แอปคู่หู: ตรวจสอบเอเจนต์ของคุณได้ทุกที่
นำของคุณเอง: Claude, Codex, Antigravity CLI, หรือผู้ให้บริการ AI อื่น ๆ
ส่งข้อบกพร่องและคำขอไปยังแบ็คล็อกสาธารณะของคุณโดยตรง
เอเจนต์ที่อ่านได้เหมือนบทสนทนา
เอเจนต์แต่ละตัวมีบทบาท มีใบหน้า และมีเธรดที่คุณอ่านได้เหมือนแอปแชต

อ่านต่อ
Mods ของ Claude Code: คืออะไร และตัวที่เราใส่ไว้ในทุกเอเจนต์
mod คือปลั๊กอินที่ JavaScript ของมันทำงานอยู่ภายใน Claude Code มันทำอะไรได้ ไฟล์สามไฟล์ของมัน วิธีโหลดและทดสอบ และ mod ที่เราใส่ไว้ในทุกเอเจนต์
อ่านบทความลดการใช้โทเค็นของ MCP: เราลดคำจำกัดความของเครื่องมือลง 60% ได้อย่างไร
เครื่องมือ MCP ทุกตัวที่เอเจนต์ของคุณเรียกใช้ได้คือบล็อก JSON ที่โมเดลอาจอ่านในทุกคำขอ ของเราหนักราว 95,000 โทเค็น นี่คือวิธีวัดของคุณภายในสองนาที สิ่งที่เราตัดออกโดยไม่ลบเครื่องมือแม้แต่ตัวเดียว และการตรวจงบประมาณที่ไม่ปล่อยให้มันกลับมาบวมอีก
อ่านบทความAI เขียนโค้ดตัวไหนดีที่สุด: สิ่งที่นักพัฒนา 1,200 คนเปิดใช้จริง
การเปิดใช้เอเจนต์ 205,366 ครั้งใน 28 วัน: Opus มาเป็นอันดับหนึ่ง GPT-6.1 Sol อันดับสอง และครึ่งหนึ่งของบัญชีใช้โมเดลตัวเดียวที่เราแนะนำเป็นค่าเริ่มต้น ตัวเลขเหล่านี้พิสูจน์อะไรได้ และบอกอะไรไม่ได้
อ่านบทความ