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.

WoWas Claude Code standardmäßig hinzufügtUnterschlüssel
Commit-NachrichtEinen Trailer: Co-Authored-By: <model> <[email protected]>attribution.commit
Pull-Request-BeschreibungEin Roboter-Emoji und „Generated with Claude Code“attribution.pr
Commit oder PR aus einer Sitzung in der Cloud oder über Remote ControlDen Link zur claude.ai-Sitzung, als Claude-Session-Trailer auf Commitsattribution.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.

WertWirkung
"commit": ""Kein Trailer auf Commits
"pr": ""Keine Attributionszeile in Pull-Request-Beschreibungen
"sessionUrl": falseKein claude.ai-Sitzungslink auf Commits und Pull Requests aus einer Sitzung in der Cloud oder über Remote Control
"attribution": falseAlle 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.

DateiFür wen sie gilt
~/.claude/settings.jsonFür dich, in jedem Projekt auf diesem Rechner
.claude/settings.json im ProjektFür alle, die im Projekt arbeiten, sobald du die Datei committest
.claude/settings.local.json im ProjektFür dich, nur in diesem Projekt. Claude Code hält sie aus Git heraus, wenn es sie anlegt
Managed settings, die deine Organisation verteiltFü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": false blendet sowohl den Commit-Trailer als auch die Pull-Request-Zeile aus;
  • sobald attribution.commit oder attribution.pr gesetzt ist, ignoriert Claude Code includeCoAuthoredBy und 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 Codex Co-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-author und --no-attribute-committer schalten das ab, und --attribute-co-authored-by wechselt stattdessen zu einem Co-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.

DevOps EngineerTexterFrontend-EntwicklerVertriebsmitarbeiterBackend-EntwicklerCoach & TrainerSoftwarearchitektRechtsberaterQA EngineerFinanzen & VerwaltungFull-Stack-EntwicklerKreativdesignerMobile EntwicklerRechercheurSecurity EngineerPersonal & Recruiting
ProjektmanagerÜbersetzerGit-ExperteDatenanalystSEO-SpezialistBuchhalterLokalisierungsspezialistKommunikation & PRBrainstormerOperations & LogistikMarketing-SpezialistKundenserviceProjektassistentEinkäuferCommunity ManagerPersönlicher Assistent

AgentsRoom herunterladen

Führe alle deine KI-Agenten aus, in all deinen Projekten, aus einem einzigen Fenster.

AgentsRoom herunterladenKostenlos

Companion-App: Agenten auch unterwegs im Blick behalten

Nutze Claude, Codex, Antigravity CLI oder einen anderen KI-Anbieter.

Erweiterung installieren
Chrome Web Store

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.

Konversationsansicht

AgentsRoom Konversationsansicht: die Arbeit eines KI-Coding-Agenten als Chatverlauf
Multi-Projekte
Multi-Provider
Multi-Agenten
Live-Status
Diff & Commit
Mobile App
Live-Vorschau
Agent-Teams
Browser-Tests
Backlog-getriebene Entwicklung
Prompt-Bibliothek
Skills-Bibliothek
Alle Funktionen ansehen

Weiterlesen