Jak usunąć Co-Authored-By Claude z commitów git

Claude Code podpisuje twoje commity trailerem Co-Authored-By, a pull requesty linią Generated with Claude Code. Ustawienie, które je usuwa, plik, w którym je umieścić, i sposób na wyczyszczenie commitów, które już wypchnąłeś.

Prosisz Claude Code o commit, a wiadomość kończy się linią, której nie napisałeś: Co-Authored-By: Claude Opus 4.6 <[email protected]>. Otwórz z nim pull request, a opis kończy się emoji robota i „Generated with Claude Code”. Żadne z nich nie jest błędem. Oba pochodzą z jednego ustawienia, które zmienisz w minutę.

Ten poradnik omawia ustawienie, plik, w którym je umieścić, żeby dotyczyło ciebie, jednego projektu albo całego zespołu, przestarzały klucz, który być może nadal masz, oraz sposób na wyczyszczenie commitów, które już mają tę linię. Fakty o Claude Code pochodzą z jego dokumentacji ustawień, przeczytanej 12 listopada 2026 z zainstalowanym Claude Code 2.1.318.

Krótka odpowiedź. Wpisz to do ~/.claude/settings.json:

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

Nowe commity nie mają już trailera, nowe pull requesty tracą linię. Commity zrobione przed zmianą zachowują ją, dopóki ich nie przepiszesz.

Co dodaje Claude Code i gdzie

Claude Code dodaje atrybucję w trzech miejscach. Każde ma własny podklucz pod attribution.

GdzieCo Claude Code dodaje domyślniePodklucz
Wiadomość commitaTrailer: Co-Authored-By: <model> <[email protected]>attribution.commit
Opis pull requestaEmoji robota i „Generated with Claude Code”attribution.pr
Commit lub PR z sesji w chmurze albo sesji Remote ControlLink do sesji claude.ai, jako trailer Claude-Session w commitachattribution.sessionUrl

Nazwa w trailerze to model używany w chwili tworzenia commita. Dlatego linia w jednym tygodniu mówi Claude Opus 4.6, a w następnym Claude Sonnet 4.6, i dlatego wyszukiwania tego problemu wymieniają tyle modeli. Gdy Claude Code rozpoznaje model Claude, ale nie może potwierdzić jego wersji, pisze samo Claude. Gdy model za własnym ANTHROPIC_BASE_URL w ogóle nie jest modelem Claude, pisze Claude Code. Gdy commit robi subagent, trailer podaje model subagenta.

Ta linia to nie hook git. Claude Code każe Claude ją dodać, gdy Claude sam pisze commit lub pull request. Commit, który robisz sam w terminalu, albo który robi inne narzędzie, nigdy jej nie dostaje.

Wyłącz ją ustawieniem attribution

attribution przyjmuje obiekt z trzema częściami albo false dla wszystkich naraz.

WartośćEfekt
"commit": ""Brak trailera w commitach
"pr": ""Brak linii atrybucji w opisach pull requestów
"sessionUrl": falseBrak linku do sesji claude.ai w commitach i pull requestach z sesji w chmurze albo sesji Remote Control
"attribution": falseWszystkie trzy ukryte naraz. Wymaga Claude Code 2.1.281 lub nowszego

Krótka forma kusi, ale najpierw przeczytaj wiersz z wersją. Claude Code starszy niż 2.1.281 odrzuca "attribution": false i nie ogranicza się do zignorowania klucza: pomija cały plik ustawień, który go zawiera, razem z twoimi uprawnieniami, hookami i modelem. Jeśli ten sam plik jest czytany na maszynach z różnymi wersjami, użyj długiej formy:

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

Uruchom /status, żeby sprawdzić, czy plik się załadował: linia Setting sources wymienia każdy plik, który Claude Code przeczytał. Jeśli sesja, która była już otwarta, nadal dodaje linię, uruchom nową.

Który plik: ty, jeden projekt czy cały zespół

Klucz działa w każdym pliku ustawień. To plik decyduje, kogo dotyczy.

PlikKogo dotyczy
~/.claude/settings.jsonCiebie, we wszystkich projektach na tej maszynie
.claude/settings.json w projekcieWszystkich, którzy pracują w projekcie, gdy już zrobisz commit tego pliku
.claude/settings.local.json w projekcieCiebie, tylko w tym projekcie. Claude Code trzyma go poza git, gdy go tworzy
Managed settings wdrożone przez twoją organizacjęWszystkich, którym organizacja je wdroży

Gdy dwa pliki ustawiają klucz, wygrywa wyższy: managed settings, potem --settings w wierszu poleceń, potem lokalny plik projektu, potem wspólny plik projektu, potem twój plik użytkownika. Z tej kolejności wynikają dwa przypadki. Jeśli twój zespół commituje plik, który celowo zostawia trailer, twój własny .claude/settings.local.json nadpisuje go dla ciebie, niczego nie zmieniając innym. Jeśli twoja organizacja ustawia atrybucję w managed settings, nic, co napiszesz, tego nie zmieni.

Możesz też powiedzieć Claude w swoim CLAUDE.md, żeby nie dodawał linii, a Claude Code informuje Claude, że twoje własne instrukcje dotyczące atrybucji mają pierwszeństwo przed jego domyślnymi liniami, chyba że linia pochodzi z managed settings. Różnica jest w naturze: ustawienie usuwa tekst, o który prosi Claude Code, a instrukcja to coś, co model czyta i stosuje. Użyj ustawienia.

Stary klucz includeCoAuthoredBy

Przed attribution przełącznik nazywał się includeCoAuthoredBy. Jest przestarzały od Claude Code 2.0.62 i nadal czytany:

  • "includeCoAuthoredBy": false ukrywa zarówno trailer w commitach, jak i linię w pull requestach;
  • gdy tylko ustawione jest attribution.commit lub attribution.pr, Claude Code ignoruje includeCoAuthoredBy i używa domyślnego tekstu dla tej z dwóch części, której nie ustawiłeś.

Ta druga reguła to typowy powód, dla którego trailer wraca. Miałeś includeCoAuthoredBy: false, potem dodałeś "attribution": {"pr": ""}, żeby usunąć tylko linię w PR, i trailer w commitach pojawia się z powrotem, bo teraz decyduje attribution, a commit nie jest ustawione. Przejdź na attribution i ustaw obie części.

Zastąp ją zamiast usuwać

Niektóre zespoły chcą wiedzieć, które commity powstały z pomocą AI, tylko nie przez tę linię. attribution.commit przyjmuje dowolny tekst, także trailery. Git czyta trailery tylko z ostatniego akapitu wiadomości, więc trzymaj je razem na końcu:

{
  "attribution": {
    "commit": "Assisted-by: Claude Code"
  }
}

Zrób commit tego w .claude/settings.json projektu, a Claude Code każdego członka zespołu będzie pisał tę samą linię.

Commity, które już mają trailer

Ustawienie zmienia tylko commity pisane po nim. Dla tych, które już istnieją, właściwe narzędzie zależy od tego, jak daleko zaszły.

Ostatni commit, jeszcze nie wypchnięty: zrób amend i usuń linię w edytorze.

git commit --amend

Kilka commitów na gałęzi, której nikomu nie udostępniłeś: zrób rebase i przeredaguj każdy z nich.

git rebase -i origin/main

Cała historia: git filter-repo przepisuje każdą wiadomość commita w jednym przebiegu. Wymaga świeżego klonu i jest osobnym narzędziem do zainstalowania:

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

Przepisywanie ma swój koszt, a na wspólnej gałęzi zwykle jest wyższy niż koszt samej linii. Każdy hash commita po pierwszym zmienionym jest nowy, więc wypchnięta gałąź wymaga force push, każdy współpracownik musi zacząć od nowej historii, otwarte pull requesty oparte na starych commitach się psują, a podpisane commity tracą podpis. Na prywatnej gałęzi przed merge: zrób to. Na gałęzi main, którą inni już pobrali: zostaw ją i ustaw klucz na przyszłość.

Co trailer robi na GitHub

GitHub czyta trailery Co-authored-by i pokazuje współautora przy commicie, gdy adres e-mail należy do konta GitHub. W czerwcu 2025 dwa issues w repozytorium anthropics/claude-code (#1653 i #1655) zgłosiły commity przypisane przez ten adres do konta GitHub niezwiązanego z Anthropic; oba są zamknięte. Niezależnie od tego, na jakie konto adres wskazuje danego dnia, usunięcie trailera usuwa współautora z kolejnych commitów, i tylko z nich.

Co robią inne CLI

Claude Code nie jest jedynym narzędziem, które podpisuje swoją pracę, a każde CLI ma własny przełącznik.

  • Codex. W kodzie źródłowym openai/codex, który przeczytaliśmy 12 listopada 2026, Codex dodaje Co-authored-by: Codex <[email protected]> do commitów i „Generated with Codex.” do opisów pull requestów, gdy atrybucja jest włączona dla twojego workspace’u, czyli zgodnie z polityką, którą pobiera przy starcie sesji. Gdy polityka jest wyłączona, Codex dostaje polecenie, by nie dodawać żadnej z tych linii.
  • Aider. Dopisuje „(aider)” do nazw autora i committera w git, zamiast dodawać trailer. --no-attribute-author i --no-attribute-committer to wyłączają, a --attribute-co-authored-by przełącza na trailer Co-authored-by.

Co robimy w AgentsRoom

Codziennie uruchamiamy kilka agentów na tych samych repozytoriach, Claude Code obok Codex i innych, a commit to miejsce, w którym ich praca się spotyka. Dwa przypadki, które nie podlegają tym samym regułom.

Gdy agent sam robi commit w swoim terminalu, wiadomość pisze jego CLI, więc obowiązuje ustawienie tego CLI: attribution dla Claude Code, polityka workspace’u dla Codex, flagi dla Aider.

Gdy robisz commit z AgentsRoom, z zakładki Changes, z trybu przeglądu, przez automatyczny commit przy zamknięciu agenta albo z ekranu Changes w aplikacji mobilnej, commit pisze AgentsRoom i żadne CLI nie dodaje swojego trailera. Na dole trafia podpis commita AgentsRoom, który ustawiasz sam. Domyślnie dodaje jedną linię z rolą każdego agenta, którego pliki są w commicie, i czasem, który poświęcił:

bug : Fix the login redirect

AgentsRoom-Agent: fullstack; time=42m

Każda część to osobny przełącznik w Ustawienia > Git > Podpis commita, dla twojego konta, folderu projektów albo pojedynczego projektu: rola agenta, poświęcony czas oraz, domyślnie wyłączone, koszt, część twojego limitu i prompty, które wpisałeś. Wyłącz Agent i Poświęcony czas, a twoje commity będą dokładnie takie jak wcześniej. W naszych własnych repozytoriach zostawiamy rolę włączoną: w repozytorium, do którego commitują cztery CLI, nazwa modelu mówi, który model napisał kod, a rola mówi, jakie zadanie wykonywał, i właśnie tego szukamy, gdy zmiana coś psuje trzy tygodnie później. Nasz publiczny changelog czyta tę samą linię, żeby pokazać, które agenty pracowały nad każdym wydaniem.

Jeśli chcesz też znać tok rozumowania za zmianą, Commit Context dodaje link do rozmowy agenta w tym samym bloku trailerów. A gdy wolisz w ogóle nie pisać wiadomości, wiadomości commitów AI przygotowują ją na podstawie diffa.

Najczęściej zadawane pytania

Jak usunąć Co-Authored-By Claude z moich commitów?

Dodaj "attribution": {"commit": "", "pr": ""} do ~/.claude/settings.json. Claude Code przestanie wtedy dodawać trailer Co-Authored-By do commitów, które pisze, i linię Generated with Claude Code do pull requestów, które otwiera, we wszystkich projektach na tej maszynie. W Claude Code 2.1.281 lub nowszym "attribution": false ukrywa wszystko jedną wartością. Commity zrobione przed zmianą zachowują swój trailer.

Czy includeCoAuthoredBy nadal działa?

Nadal działa, ale jest przestarzały od Claude Code 2.0.62. includeCoAuthoredBy: false ukrywa zarówno trailer w commitach, jak i linię w pull requestach, chyba że nowszy klucz attribution ustawia commit lub pr: wtedy decyduje attribution. Nowe konfiguracje powinny używać attribution.

Dlaczego trailer mówi Claude Opus 4.6 albo Sonnet 4.6 zamiast Claude?

Trailer podaje model używany w chwili tworzenia commita, więc zmienia się razem z twoim modelem. Claude Code pisze samo Claude, gdy nie może potwierdzić dokładnej wersji, a Claude Code, gdy model za własnym ANTHROPIC_BASE_URL nie jest modelem Claude. Ustawienie usuwa wszystkie te warianty.

Jak usunąć trailer z commitów, które już zrobiłem?

Dla ostatniego commita uruchom git commit --amend i usuń linię. Dla kilku commitów, które nie zostały jeszcze wypchnięte, użyj git rebase -i i przeredaguj je. Dla całej historii git filter-repo z message callback usuwa linię z każdego commita, na świeżym klonie. Przepisanie zmienia hash każdego commita od pierwszego zmienionego, więc wypchnięta historia wymaga force push, a każdy współpracownik musi zacząć od nowej historii.

Czy moja firma może wymusić ponowne włączenie atrybucji?

Tak. Managed settings wdrożone przez organizację stoją wyżej niż każdy plik, który kontrolujesz, więc ustawiona tam wartość attribution wygrywa z twoimi ustawieniami użytkownika, projektu i lokalnymi. Uruchom /status w Claude Code: linia Setting sources pokazuje, czy dotyczy cię źródło zarządzane.

Czy usunięcie trailera ukrywa, że korzystałem z AI?

Usuwa jedną linię z wiadomości commita, nic więcej. Claude Code sam oferuje to ustawienie, a jego dokumentacja nie prosi o zachowanie linii. Niektóre projekty i pracodawcy wymagają jednak od współtwórców ujawnienia pomocy AI, więc przeczytaj zasady repozytorium, do którego wypychasz, zanim ją tam wyłączysz.

Inżynier DevOpsRedaktorProgramista FrontendPrzedstawiciel HandlowyProgramista BackendCoach i TrenerArchitekt OprogramowaniaDoradca PrawnyInżynier QAFinanse i AdministracjaProgramista Full-StackProjektant KreatywnyProgramista MobilnyResearcherInżynier BezpieczeństwaHR i Rekrutacja
Kierownik ProjektuTłumaczEkspert GitAnalityk DanychSpecjalista SEOKsięgowySpecjalista ds. LokalizacjiKomunikacja i PRBrainstormerOperacje i LogistykaSpecjalista ds. MarketinguObsługa KlientaAsystent projektuSpecjalista ds. ZakupówCommunity ManagerAsystent Osobisty

Pobierz AgentsRoom

Uruchamiaj wszystkich swoich agentów AI, we wszystkich projektach, z jednego okna.

Pobierz AgentsRoomZa darmo

Aplikacja towarzysząca: monitoruj agentów w podróży

Użyj Claude, Codex, Antigravity CLI lub innego dostawcy AI.

Zainstaluj rozszerzenie
Chrome Web Store

Wysyłaj bugi i prośby bezpośrednio do swojego publicznego backlogu.

Agenci, których czytasz jak rozmowę

Każdy agent ma rolę, twarz i wątek, który czytasz jak komunikator.

Widok rozmowy

Widok rozmowy w AgentsRoom: praca agenta AI do kodowania pokazana jako wątek czatu
Wiele projektów
Multi-provider
Wielu agentów
Status na żywo
Diff i commit
Aplikacja mobilna
Podgląd na żywo
Zespoły agentów
Testy w przeglądarce
Dev oparta na backlogu
Biblioteka promptów
Biblioteka umiejętności
Zobacz wszystkie funkcje

Czytaj dalej