Як прибрати Co-Authored-By Claude з твоїх комітів git
Claude Code підписує твої коміти трейлером Co-Authored-By, а твої пул-реквести рядком Generated with Claude Code. Налаштування, яке їх прибирає, файл, куди його покласти, і як почистити вже запушені коміти.
Ти просиш Claude Code зробити коміт, і повідомлення закінчується рядком, якого ти не писав: Co-Authored-By: Claude Opus 4.6 <[email protected]>. Відкрий із ним пул-реквест, і опис закінчиться емодзі робота та «Generated with Claude Code». Ні те, ні інше не баг. Обидва походять з одного налаштування, і ти змінюєш його за хвилину.
Цей посібник розбирає налаштування, файл, куди його покласти, щоб воно діяло на тебе, на один проєкт або на всю команду, старий ключ, який у тебе, можливо, ще лишився, і як почистити коміти, які вже несуть цей рядок. Факти про Claude Code взято з його довідника з налаштувань, прочитаного 12 листопада 2026 року зі встановленим Claude Code 2.1.318.
Коротка відповідь. Поклади це в ~/.claude/settings.json:
{
"attribution": {
"commit": "",
"pr": ""
}
}
Нові коміти більше не несуть трейлер, нові пул-реквести втрачають рядок. Коміти, зроблені до зміни, зберігають його, доки ти їх не перепишеш.
Що додає Claude Code і куди
Claude Code додає атрибуцію в трьох місцях. Кожне має свій підключ в attribution.
| Де | Що Claude Code додає за замовчуванням | Підключ |
|---|---|---|
| Повідомлення коміту | Трейлер: Co-Authored-By: <модель> <[email protected]> | attribution.commit |
| Опис пул-реквесту | Емодзі робота та «Generated with Claude Code» | attribution.pr |
| Коміт або PR з хмарної сесії чи сесії Remote Control | Посилання на сесію 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 Code просить Claude додати його, коли Claude сам пише коміт або пул-реквест. Коміт, який ти робиш сам у терміналі або який робить інший інструмент, ніколи його не отримує.
Вимкнути його налаштуванням attribution
attribution приймає об'єкт із трьох частин або false для всіх одразу.
| Значення | Ефект |
|---|---|
"commit": "" | Немає трейлера в комітах |
"pr": "" | Немає рядка атрибуції в описах пул-реквестів |
"sessionUrl": false | Немає посилання на сесію claude.ai в комітах і пул-реквестах з хмарної сесії чи сесії Remote Control |
"attribution": false | Усі три приховано одразу. Потрібен Claude Code 2.1.281 або новіший |
Коротка форма спокуслива, але спершу прочитай рядок про версію. Claude Code, старіший за 2.1.281, відхиляє "attribution": false, і він не просто ігнорує ключ: він пропускає весь файл налаштувань, що його містить, разом із твоїми дозволами, хуками й моделлю. Якщо той самий файл читається на машинах з різними версіями, використовуй довгу форму:
{
"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, ніщо з того, що ти напишеш, її не змінить.
Ти також можеш сказати Claude у своєму CLAUDE.md не додавати рядок, і Claude Code повідомляє Claude, що твої власні інструкції щодо атрибуції важливіші за його рядки за замовчуванням, якщо тільки рядок не прийшов з managed settings. Різниця в природі: налаштування прибирає текст, який запитує Claude Code, а інструкція лишається текстом, який модель читає й застосовує. Використовуй налаштування.
Старий ключ includeCoAuthoredBy
До attribution перемикач називався includeCoAuthoredBy. Він застарів, починаючи з Claude Code 2.0.62, і досі читається:
"includeCoAuthoredBy": falseприховує і трейлер комітів, і рядок пул-реквестів;- щойно задано
attribution.commitабоattribution.pr, Claude Code ігноруєincludeCoAuthoredByі бере свій текст за замовчуванням для тієї з двох частин, яку ти не задав.
Саме через друге правило трейлер зазвичай і повертається. У тебе було includeCoAuthoredBy: false, потім ти додав "attribution": {"pr": ""}, щоб прибрати лише рядок PR, і трейлер комітів з'являється знову, бо тепер вирішує attribution, а commit не задано. Переходь на attribution і задай обидві частини.
Замінити його, а не прибрати
Деякі команди хочуть пам'ятати, які коміти зроблено з допомогою ШІ, просто не цим рядком. 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"
'
Переписування має ціну, і у спільній гілці вона зазвичай вища, ніж ціна рядка. Кожен хеш коміту після першого зміненого стає новим: запушеній гілці потрібен force push, кожному учаснику доведеться почати заново з нової історії, відкриті пул-реквести на старих комітах ламаються, а підписані коміти втрачають підпис. В особистій гілці до merge роби це. У гілці main, яку інші вже стягнули, залиш її як є і задай ключ на майбутнє.
Що трейлер робить на GitHub
GitHub читає трейлери Co-authored-by і показує співавтора в коміті, коли адреса електронної пошти належить обліковому запису GitHub. У червні 2025 року два issue в репозиторії anthropics/claude-code (#1653 і #1655) повідомили про коміти, приписані через цю адресу обліковому запису GitHub, не пов'язаному з Anthropic; обидва закрито. На який би обліковий запис не вказувала адреса того чи іншого дня, видалення трейлера прибирає співавтора з наступних комітів, і лише з них.
Що роблять інші CLI
Claude Code не єдиний, хто підписує свою роботу, і кожен CLI має свій перемикач.
- Codex. У вихідному коді
openai/codex, який ми прочитали 12 листопада 2026 року, Codex додаєCo-authored-by: Codex <[email protected]>до комітів і «Generated with Codex.» до тіла пул-реквестів, коли атрибуцію ввімкнено для твого робочого простору: це політика, яку він отримує під час старту сесії. Коли політику вимкнено, Codex отримує вказівку не додавати жодного з цих рядків. - Aider. Він дописує «(aider)» до імені автора й комітера git замість того, щоб додавати трейлер.
--no-attribute-authorі--no-attribute-committerвимикають це, а--attribute-co-authored-byзамінює це трейлеромCo-authored-by.
Що ми робимо в AgentsRoom
Ми щодня запускаємо кілька агентів на тих самих репозиторіях, Claude Code поруч із Codex та іншими, і саме в коміті їхня робота сходиться. Два випадки, і правила в них різні.
Коли агент сам робить коміт у своєму терміналі, повідомлення пише його CLI, тож діє налаштування самого CLI: attribution для Claude Code, політика робочого простору для Codex, прапорці для Aider.
Коли ти робиш коміт з AgentsRoom, з вкладки Changes, режиму перегляду, автокоміту під час закриття агента або екрана Changes мобільного застосунку, коміт пише AgentsRoom, і жоден CLI не додає свій трейлер. Унизу опиняється підпис коміту AgentsRoom, і налаштовуєш його ти. За замовчуванням він додає один рядок з роллю кожного агента, чиї файли є в коміті, і часом, який він витратив:
bug : Fix the login redirect
AgentsRoom-Agent: fullstack; time=42m
Кожна частина має свій перемикач у «Налаштування > Git > Підпис коміту», для твого облікового запису, папки проєктів або одного проєкту: роль агента, витрачений час і, вимкнені за замовчуванням, вартість, частка твоєї квоти та промпти, які ти написав. Вимкни «Агент» і «Витрачений час», і твої коміти стануть точно такими, якими були раніше. У наших власних репозиторіях ми лишаємо роль увімкненою: у репозиторії, де комітять чотири CLI, ім'я моделі каже, яка модель написала код, а роль каже, яку роботу вона виконувала, і саме це ми шукаємо, коли зміна щось ламає три тижні потому. Наш публічний changelog читає той самий рядок, щоб показати, які агенти працювали над кожним релізом.
Якщо тобі потрібне ще й міркування за зміною, Commit Context додає посилання на розмову агента в той самий блок трейлерів. А якщо ти волієш узагалі не писати повідомлення, AI-повідомлення комітів складають його за диффом.
Часті запитання
Як прибрати Co-Authored-By Claude з моїх комітів?
Додай "attribution": {"commit": "", "pr": ""} у ~/.claude/settings.json. Тоді Claude Code перестає додавати трейлер Co-Authored-By до комітів, які він пише, і рядок Generated with Claude Code до пул-реквестів, які він відкриває, у всіх проєктах на цій машині. У Claude Code 2.1.281 і новіших "attribution": false приховує все одним значенням. Коміти, зроблені до зміни, зберігають свій трейлер.
includeCoAuthoredBy ще працює?
Працює, але вважається застарілим, починаючи з Claude Code 2.0.62. includeCoAuthoredBy: false приховує і трейлер комітів, і рядок пул-реквестів, якщо тільки новіший ключ attribution не задає commit або pr: тоді вирішує attribution. Нова конфігурація використовує attribution.
Чому в трейлері написано Claude Opus 4.6 або Sonnet 4.6, а не Claude?
Трейлер називає модель, яка використовується в момент коміту, тож він змінюється разом із твоєю моделлю. Claude Code пише просто Claude, коли не може підтвердити точну версію, і Claude Code, коли модель за власним ANTHROPIC_BASE_URL не є моделлю Claude. Налаштування прибирає всі ці варіанти.
Як прибрати трейлер з уже зроблених комітів?
Для останнього коміту виконай git commit --amend і видали рядок. Для кількох ще не запушених комітів використай git rebase -i і переформулюй їх. Для всієї історії git filter-repo з message callback прибирає рядок з кожного коміту, на свіжому клоні. Переписування змінює хеш кожного коміту після першого зачепленого: уже запушена історія потребує force push, і кожному учаснику доведеться почати заново з нової історії.
Чи може моя компанія примусово повернути атрибуцію?
Так. Managed settings, розгорнуті організацією, стоять вище за всі файли, якими ти керуєш, тож значення attribution, задане там, перемагає твої користувацькі, проєктні й локальні налаштування. Виконай /status у Claude Code: рядок Setting sources показує, чи діє на тебе кероване джерело.
Чи приховує видалення трейлера, що я використовував ШІ?
Воно прибирає один рядок з повідомлення коміту, і нічого більше. Claude Code сам пропонує це налаштування, і його документація не просить зберігати рядок. Натомість деякі проєкти й роботодавці просять учасників повідомляти про допомогу ШІ: прочитай правила репозиторію, у який ти пушиш, перш ніж вимикати його там.
Завантажити AgentsRoom
Запускайте всіх своїх AI-агентів на всіх своїх проєктах з одного вікна.
Додаток-компаньйон: контролюйте своїх агентів на ходу
Використовуйте свого: Claude, Codex, Antigravity CLI або іншого AI-провайдера.
Надсилайте баги та запити прямо у свій публічний беклог.
Агенти, яких читаєш як розмову
Кожен агент має роль, обличчя та стрічку, яку читаєш як месенджер.

Читати далі
Моди Claude Code: що це таке і мод, який ми вбудовуємо в кожного агента
Мод є плагіном, чий JavaScript працює всередині Claude Code. Що він уміє, три його файли, як його завантажити й протестувати, і мод, який є в кожному нашому агенті.
Читати статтюЯк зменшити витрату токенів на MCP: ми скоротили визначення інструментів на 60%
Кожен інструмент MCP, який може викликати твій агент, це блок JSON, який модель може читати при кожному запиті. Наші важили близько 95 000 токенів. Як виміряти свої за дві хвилини, що ми скоротили, не прибравши жодного інструмента, і перевірка бюджету, яка не дає їм знову розростися.
Читати статтюЯкий ШІ найкращий для програмування? Що насправді запускають 1 200 розробників
205 366 запусків агентів за 28 днів: Opus на першому місці, GPT-6.1 Sol на другому, і половина облікових записів на моделі, яку ми пропонуємо за замовчуванням. Що цифри доводять, а чого сказати не можуть.
Читати статтю