So entfernst du Co-Authored-By Claude aus deinen Git-Commits
Claude Code signiert deine Commits mit einem Co-Authored-By-Trailer und deine Pull Requests mit einer Zeile Generated with Claude Code. Die Einstellung, die beides entfernt, die Datei, in die sie gehört, und wie du bereits gepushte Commits bereinigst.
Du bittest Claude Code um einen Commit, und die Nachricht endet mit einer Zeile, die du nicht geschrieben hast: Co-Authored-By: Claude Opus 4.6 <[email protected]>. Lass es einen Pull Request öffnen, und die Beschreibung endet mit einem Roboter-Emoji und „Generated with Claude Code“. Beides ist kein Bug. Beides kommt aus einer einzigen Einstellung, und du änderst sie in einer Minute.
Dieser Leitfaden behandelt die Einstellung, die Datei, in die sie gehört, damit sie für dich, für ein Projekt oder für ein ganzes Team gilt, den veralteten Schlüssel, den du vielleicht noch hast, und wie du Commits bereinigst, die die Zeile schon tragen. Die Fakten zu Claude Code stammen aus seiner Einstellungsreferenz, gelesen am 12. November 2026 mit installiertem Claude Code 2.1.318.
Die kurze Antwort. Schreib das in ~/.claude/settings.json:
{
"attribution": {
"commit": "",
"pr": ""
}
}
Neue Commits tragen den Trailer nicht mehr, neue Pull Requests verlieren die Zeile. Commits, die vor der Änderung entstanden sind, behalten sie, bis du sie umschreibst.
Was Claude Code hinzufügt, und wo
Claude Code fügt an drei Stellen eine Attribution hinzu. Jede hat ihren eigenen Unterschlüssel unter attribution.
| Wo | Was Claude Code standardmäßig hinzufügt | Unterschlüssel |
|---|---|---|
| Commit-Nachricht | Einen Trailer: Co-Authored-By: <model> <[email protected]> | attribution.commit |
| Pull-Request-Beschreibung | Ein Roboter-Emoji und „Generated with Claude Code“ | attribution.pr |
| Commit oder PR aus einer Sitzung in der Cloud oder über Remote Control | Den Link zur claude.ai-Sitzung, als Claude-Session-Trailer auf Commits | attribution.sessionUrl |
Der Name im Trailer ist das Modell, das beim Commit im Einsatz ist. Deshalb steht in der Zeile eine Woche Claude Opus 4.6 und in der nächsten Claude Sonnet 4.6, und deshalb nennen Suchanfragen zu diesem Problem so viele Modelle. Wenn Claude Code ein Claude-Modell erkennt, aber seine Version nicht bestätigen kann, schreibt es nur Claude. Wenn das Modell hinter einer eigenen ANTHROPIC_BASE_URL überhaupt kein Claude-Modell ist, schreibt es Claude Code. Wenn ein Subagent den Commit macht, nennt der Trailer das Modell des Subagenten.
Die Zeile ist kein Git-Hook. Claude Code weist Claude an, sie hinzuzufügen, wenn Claude selbst einen Commit oder einen Pull Request schreibt. Ein Commit, den du selbst in einem Terminal machst oder den ein anderes Tool macht, bekommt sie nie.
Mit der Einstellung attribution abschalten
attribution nimmt ein Objekt mit drei Teilen an, oder false für alle zusammen.
| Wert | Wirkung |
|---|---|
"commit": "" | Kein Trailer auf Commits |
"pr": "" | Keine Attributionszeile in Pull-Request-Beschreibungen |
"sessionUrl": false | Kein claude.ai-Sitzungslink auf Commits und Pull Requests aus einer Sitzung in der Cloud oder über Remote Control |
"attribution": false | Alle drei auf einmal ausgeblendet. Erfordert Claude Code 2.1.281 oder neuer |
Die Kurzform ist verlockend, aber lies zuerst die Versionszeile. Ein Claude Code älter als 2.1.281 lehnt "attribution": false ab, und es ignoriert dabei nicht nur den Schlüssel: Es überspringt die ganze Einstellungsdatei, die ihn enthält, mit deinen Berechtigungen, Hooks und deinem Modell. Wenn dieselbe Datei auf Rechnern mit unterschiedlichen Versionen gelesen wird, nimm die lange Form:
{
"attribution": {
"commit": "",
"pr": "",
"sessionUrl": false
}
}
Führe /status aus, um zu prüfen, ob die Datei geladen wurde: Die Zeile Setting sources listet jede Datei auf, die Claude Code gelesen hat. Wenn eine bereits offene Sitzung die Zeile weiter hinzufügt, starte eine neue.
Welche Datei: du, ein Projekt oder das ganze Team
Der Schlüssel funktioniert in jeder Einstellungsdatei. Die Datei entscheidet, für wen er gilt.
| Datei | Für wen sie gilt |
|---|---|
~/.claude/settings.json | Für dich, in jedem Projekt auf diesem Rechner |
.claude/settings.json im Projekt | Für alle, die im Projekt arbeiten, sobald du die Datei committest |
.claude/settings.local.json im Projekt | Für dich, nur in diesem Projekt. Claude Code hält sie aus Git heraus, wenn es sie anlegt |
| Managed settings, die deine Organisation verteilt | Für alle, an die die Organisation sie verteilt |
Wenn zwei Dateien den Schlüssel setzen, gewinnt die höhere: Managed settings, dann --settings auf der Kommandozeile, dann die lokale Projektdatei, dann die geteilte Projektdatei, dann deine Benutzerdatei. Aus dieser Reihenfolge folgen zwei Fälle. Wenn dein Team eine Datei committet, die den Trailer absichtlich behält, überschreibt deine eigene .claude/settings.local.json sie für dich, ohne für andere etwas zu ändern. Wenn deine Organisation die Attribution in Managed settings festlegt, ändert nichts, was du schreibst, daran etwas.
Du kannst Claude auch in deiner CLAUDE.md sagen, die Zeile nicht hinzuzufügen, und Claude Code teilt Claude mit, dass deine eigenen Anweisungen zur Attribution Vorrang vor seinen Standardzeilen haben, außer die Zeile kommt aus Managed settings. Der Unterschied liegt in der Art: Die Einstellung entfernt den Text, den Claude Code anfordert, eine Anweisung ist etwas, das das Modell liest und anwendet. Nimm die Einstellung.
Der alte Schlüssel includeCoAuthoredBy
Vor attribution hieß der Schalter includeCoAuthoredBy. Er ist seit Claude Code 2.0.62 veraltet und wird weiterhin gelesen:
"includeCoAuthoredBy": falseblendet sowohl den Commit-Trailer als auch die Pull-Request-Zeile aus;- sobald
attribution.commitoderattribution.prgesetzt ist, ignoriert Claude CodeincludeCoAuthoredByund nimmt seinen Standardtext für den der beiden Teile, den du nicht gesetzt hast.
Diese zweite Regel ist der übliche Grund, warum der Trailer zurückkommt. Du hattest includeCoAuthoredBy: false, hast dann "attribution": {"pr": ""} ergänzt, um nur die PR-Zeile zu entfernen, und der Commit-Trailer taucht wieder auf, weil jetzt attribution entscheidet und commit nicht gesetzt ist. Steig auf attribution um und setz beide Teile.
Ersetzen statt entfernen
Manche Teams wollen festhalten, welche Commits KI-Hilfe hatten, nur nicht mit dieser Zeile. attribution.commit akzeptiert beliebigen Text, Trailer eingeschlossen. Git liest Trailer nur aus dem letzten Absatz der Nachricht, also halte sie am Ende zusammen:
{
"attribution": {
"commit": "Assisted-by: Claude Code"
}
}
Committe das in die .claude/settings.json des Projekts, und das Claude Code jedes Teammitglieds schreibt dieselbe Zeile.
Commits, die den Trailer schon haben
Die Einstellung ändert nur Commits, die danach geschrieben werden. Für die bereits vorhandenen hängt das richtige Werkzeug davon ab, wie weit sie schon gekommen sind.
Der letzte Commit, noch nicht gepusht: amende ihn und lösche die Zeile im Editor.
git commit --amend
Mehrere Commits auf einem Branch, den du nicht geteilt hast: Mach einen Rebase und formuliere jeden um.
git rebase -i origin/main
Eine ganze Historie: git filter-repo schreibt jede Commit-Nachricht in einem Durchgang um. Es braucht einen frischen Clone und ist ein eigenes Tool, das du installieren musst:
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"
'
Umschreiben hat seinen Preis, und auf einem geteilten Branch ist er meist höher als der der Zeile. Jeder Commit-Hash nach dem ersten geänderten ist neu: Ein gepushter Branch braucht einen Force Push, alle Mitwirkenden müssen von der neuen Historie aus neu anfangen, offene Pull Requests auf Basis der alten Commits gehen kaputt, und signierte Commits verlieren ihre Signatur. Auf einem persönlichen Branch vor dem Merge: Mach es. Auf einem main-Branch, den andere schon gepullt haben: Lass es und setz den Schlüssel für alles, was danach kommt.
Was der Trailer auf GitHub bewirkt
GitHub liest Co-authored-by-Trailer und zeigt den Co-Autor am Commit an, wenn die E-Mail-Adresse zu einem GitHub-Konto gehört. Im Juni 2025 meldeten zwei Issues im Repository anthropics/claude-code (#1653 und #1655) Commits, die über diese Adresse einem GitHub-Konto ohne Bezug zu Anthropic zugeordnet wurden; beide sind geschlossen. Egal, auf welches Konto die Adresse an einem bestimmten Tag verweist: Wenn du den Trailer entfernst, verschwindet der Co-Autor aus den folgenden Commits, und nur aus diesen.
Was die anderen CLIs machen
Claude Code ist nicht das einzige Tool, das seine Arbeit signiert, und jedes CLI hat seinen eigenen Schalter.
- Codex. Im Quellcode von
openai/codex, den wir am 12. November 2026 gelesen haben, fügt CodexCo-authored-by: Codex <[email protected]>an Commits und „Generated with Codex.“ an Pull-Request-Beschreibungen an, wenn die Attribution für deinen Workspace aktiviert ist, eine Richtlinie, die es beim Start einer Sitzung abruft. Ist die Richtlinie aus, wird Codex angewiesen, keine der beiden Zeilen hinzuzufügen. - Aider. Es hängt „(aider)“ an die Namen von Git-Autor und Committer, statt einen Trailer hinzuzufügen.
--no-attribute-authorund--no-attribute-committerschalten das ab, und--attribute-co-authored-bywechselt stattdessen zu einemCo-authored-by-Trailer.
Was wir in AgentsRoom machen
Wir lassen jeden Tag mehrere Agenten auf denselben Repositorys laufen, Claude Code neben Codex und anderen, und im Commit trifft ihre Arbeit zusammen. Zwei Fälle, und sie folgen nicht denselben Regeln.
Wenn ein Agent selbst in seinem Terminal committet, schreibt sein CLI die Nachricht, also gilt die Einstellung des CLI: attribution für Claude Code, die Workspace-Richtlinie für Codex, die Flags für Aider.
Wenn du aus AgentsRoom committest, aus dem Changes-Tab, dem Review-Modus, dem automatischen Commit beim Schließen eines Agenten oder dem Changes-Bildschirm der Mobile-App, schreibt AgentsRoom den Commit, und kein CLI fügt seinen Trailer hinzu. Was unten steht, ist die Commit-Signatur von AgentsRoom, und die stellst du selbst ein. Standardmäßig fügt sie eine Zeile hinzu, mit der Rolle jedes Agenten, dessen Dateien im Commit stecken, und der Zeit, die er gebraucht hat:
bug : Fix the login redirect
AgentsRoom-Agent: fullstack; time=42m
Jeder Teil ist ein eigener Schalter unter Einstellungen > Git > Commit-Signatur, für dein Konto, einen Projektordner oder ein einzelnes Projekt: die Rolle des Agenten, die aufgewendete Zeit und, standardmäßig aus, die Kosten, der Anteil an deinem Kontingent und die Prompts, die du getippt hast. Schalte Agent und Aufgewendete Zeit aus, und deine Commits sind genau so wie vorher. In unseren eigenen Repositorys lassen wir die Rolle an: In einem Repository, in das vier CLIs committen, sagt ein Modellname, welches Modell den Code geschrieben hat, und die Rolle sagt, welche Aufgabe es erledigt hat, und genau das suchen wir, wenn eine Änderung drei Wochen später etwas kaputt macht. Unser öffentliches Changelog liest dieselbe Zeile, um zu zeigen, welche Agenten an jedem Release gearbeitet haben.
Wenn du auch die Begründung hinter einer Änderung willst, fügt Commit Context im selben Trailer-Block einen Link zum Gespräch des Agenten hinzu. Und wenn du die Nachricht lieber gar nicht selbst schreibst, entwerfen KI-Commit-Nachrichten sie aus dem Diff.
Häufig gestellte Fragen
Wie entferne ich Co-Authored-By Claude aus meinen Commits?
Füge "attribution": {"commit": "", "pr": ""} in ~/.claude/settings.json ein. Claude Code hängt dann den Co-Authored-By-Trailer nicht mehr an die Commits, die es schreibt, und die Zeile Generated with Claude Code nicht mehr an die Pull Requests, die es öffnet, und zwar in jedem Projekt auf diesem Rechner. Ab Claude Code 2.1.281 blendet "attribution": false alles mit einem einzigen Wert aus. Commits, die vor der Änderung entstanden sind, behalten ihren Trailer.
Funktioniert includeCoAuthoredBy noch?
Es funktioniert noch, ist aber seit Claude Code 2.0.62 veraltet. includeCoAuthoredBy: false blendet sowohl den Commit-Trailer als auch die Pull-Request-Zeile aus, außer der neuere Schlüssel attribution setzt commit oder pr: Dann entscheidet attribution. Neue Konfigurationen sollten attribution verwenden.
Warum steht im Trailer Claude Opus 4.6 oder Sonnet 4.6 statt Claude?
Der Trailer nennt das Modell, das beim Commit im Einsatz ist, er ändert sich also mit deinem Modell. Claude Code schreibt nur Claude, wenn es die genaue Version nicht bestätigen kann, und Claude Code, wenn das Modell hinter einer eigenen ANTHROPIC_BASE_URL kein Claude-Modell ist. Die Einstellung entfernt all diese Varianten.
Wie entferne ich den Trailer aus Commits, die ich schon gemacht habe?
Für den letzten Commit führst du git commit --amend aus und löschst die Zeile. Für mehrere noch nicht gepushte Commits nimmst du git rebase -i und formulierst sie um. Für eine ganze Historie entfernt git filter-repo mit einem Message-Callback die Zeile aus jedem Commit, auf einem frischen Clone. Das Umschreiben ändert jeden Commit-Hash ab dem ersten betroffenen Commit: Eine gepushte Historie braucht also einen Force Push, und alle Mitwirkenden müssen von der neuen Historie aus neu anfangen.
Kann meine Firma die Attribution wieder erzwingen?
Ja. Managed settings, die eine Organisation verteilt, stehen über jeder Datei, die du kontrollierst: Ein dort gesetzter attribution-Wert hat Vorrang vor deinen Benutzer-, Projekt- und lokalen Einstellungen. Führe /status in Claude Code aus: Die Zeile Setting sources zeigt, ob für dich eine verwaltete Quelle gilt.
Verschleiert das Entfernen des Trailers, dass ich KI genutzt habe?
Es entfernt eine Zeile aus der Commit-Nachricht, sonst nichts. Claude Code bietet die Einstellung selbst an, und seine Dokumentation verlangt nicht, dass du die Zeile behältst. Manche Projekte und Arbeitgeber verlangen allerdings, dass Mitwirkende KI-Hilfe offenlegen: Lies die Regeln des Repositorys, in das du pushst, bevor du die Zeile dort abschaltest.
AgentsRoom herunterladen
Führe alle deine KI-Agenten aus, in all deinen Projekten, aus einem einzigen Fenster.
Companion-App: Agenten auch unterwegs im Blick behalten
Nutze Claude, Codex, Antigravity CLI oder einen anderen KI-Anbieter.
Bugs und Wünsche direkt in dein öffentliches Backlog schicken.
Agenten, die du wie eine Unterhaltung liest
Jeder Agent hat eine Rolle, ein Gesicht und einen Verlauf, den du wie in einer Messaging-App liest.

Weiterlesen
Claude Code Mods: was sie sind, und die Mod, die wir in jedem Agenten mitliefern
Eine Mod ist ein Plugin, dessen JavaScript in Claude Code läuft. Was sie kann, ihre drei Dateien, wie du sie lädst und testest, und die Mod, die wir in jedem Agenten mitliefern.
Zum ArtikelWie du einem KI-Coding-Agenten ein Secret gibst, ohne es in den Prompt zu schreiben
Ein Agent braucht einen Stripe-Key oder ein Datenbank-Passwort, um seinen Befehl auszuführen. Klebst du ihn in den Chat, landet er im Transkript auf deiner Platte, beim Modellanbieter und manchmal in einem Commit. Die Regel, bei der wir nach drei eigenen Fehlern gelandet sind: Ein Secret erreicht einen Agenten über eine Umgebungsvariable und über nichts anderes.
Zum ArtikelBeste KI zum Programmieren? Was 1.200 Entwickler wirklich starten
205.366 Agenten-Starts in 28 Tagen: Opus vorn, GPT-6.1 Sol auf Platz zwei und die Hälfte der Konten auf einem Modell, das wir standardmäßig vorschlagen. Was die Zahlen beweisen und was sie nicht sagen können.
Zum Artikel