Comment retirer Co-Authored-By Claude de tes commits git

Claude Code signe tes commits d'un trailer Co-Authored-By et tes pull requests d'une ligne Generated with Claude Code. Le réglage qui les retire, le fichier où le mettre, et comment nettoyer les commits déjà poussés.

Tu demandes à Claude Code de commiter, et le message se termine par une ligne que tu n'as pas écrite : Co-Authored-By: Claude Opus 4.6 <[email protected]>. Ouvre une pull request avec lui, et la description finit par un emoji de robot et « Generated with Claude Code ». Ni l'un ni l'autre n'est un bug. Les deux viennent d'un seul réglage, et tu le changes en une minute.

Ce guide couvre le réglage, le fichier où le mettre pour qu'il s'applique à toi, à un projet ou à toute une équipe, l'ancienne clé que tu as peut-être encore, et comment nettoyer les commits qui portent déjà la ligne. Les faits sur Claude Code viennent de sa référence des réglages, lue le 12 novembre 2026 avec Claude Code 2.1.318 installé.

La réponse courte. Mets ceci dans ~/.claude/settings.json :

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

Les nouveaux commits ne portent plus le trailer, les nouvelles pull requests perdent la ligne. Les commits faits avant le changement la gardent tant que tu ne les réécris pas.

Ce que Claude Code ajoute, et où

Claude Code ajoute une attribution à trois endroits. Chacun a sa sous-clé sous attribution.

OùCe que Claude Code ajoute par défautSous-clé
Message de commitUn trailer : Co-Authored-By: <modèle> <[email protected]>attribution.commit
Description de pull requestUn emoji de robot et « Generated with Claude Code »attribution.pr
Commit ou PR d'une session cloud ou Remote ControlLe lien de la session claude.ai, en trailer Claude-Session sur les commitsattribution.sessionUrl

Le nom dans le trailer est celui du modèle utilisé au moment du commit. C'est pour ça que la ligne dit Claude Opus 4.6 une semaine et Claude Sonnet 4.6 la suivante, et que les recherches sur ce problème citent autant de modèles. Quand Claude Code reconnaît un modèle Claude sans pouvoir confirmer sa version, il écrit Claude seul. Quand le modèle derrière un ANTHROPIC_BASE_URL personnalisé n'est pas du tout un modèle Claude, il écrit Claude Code. Quand c'est un sous-agent qui commite, le trailer nomme le modèle du sous-agent.

La ligne n'est pas un hook git. Claude Code demande à Claude de l'ajouter quand Claude écrit lui-même un commit ou une pull request. Un commit que tu fais toi-même dans un terminal, ou qu'un autre outil fait, ne la reçoit jamais.

La couper avec le réglage attribution

attribution prend un objet en trois parties, ou false pour toutes à la fois.

ValeurEffet
"commit": ""Plus de trailer sur les commits
"pr": ""Plus de ligne d'attribution dans les descriptions de pull request
"sessionUrl": falsePlus de lien de session claude.ai sur les commits et pull requests faits depuis une session cloud ou Remote Control
"attribution": falseLes trois cachés d'un coup. Demande Claude Code 2.1.281 ou plus récent

La forme courte est tentante, mais lis d'abord la ligne de version. Un Claude Code plus ancien que la 2.1.281 refuse "attribution": false, et il ne se contente pas d'ignorer la clé : il saute tout le fichier de réglages qui la contient, avec tes permissions, tes hooks et ton modèle. Si le même fichier est lu sur des machines qui n'ont pas la même version, utilise la forme longue :

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

Lance /status pour vérifier que le fichier est chargé : la ligne Setting sources liste chaque fichier que Claude Code a lu. Si une session déjà ouverte continue d'ajouter la ligne, démarre-en une nouvelle.

Quel fichier : toi, un projet ou toute l'équipe

La clé marche dans tous les fichiers de réglages. C'est le fichier qui décide à qui elle s'applique.

FichierÀ qui il s'applique
~/.claude/settings.jsonÀ toi, dans tous les projets de cette machine
.claude/settings.json dans le projetÀ tous ceux qui travaillent dans le projet, une fois le fichier commité
.claude/settings.local.json dans le projetÀ toi, dans ce projet seulement. Claude Code le garde hors de git quand il le crée
Managed settings déployés par ton organisationÀ tous ceux à qui l'organisation les déploie

Quand deux fichiers définissent la clé, le plus haut gagne : les managed settings, puis --settings en ligne de commande, puis le fichier local du projet, puis le fichier partagé du projet, puis ton fichier utilisateur. Deux cas en découlent. Si ton équipe commite un fichier qui garde le trailer exprès, ton propre .claude/settings.local.json le remplace pour toi sans rien changer pour les autres. Si ton organisation fixe l'attribution dans ses managed settings, rien de ce que tu écris ne la change.

Tu peux aussi dire à Claude dans ton CLAUDE.md de ne pas ajouter la ligne, et Claude Code indique à Claude que tes propres instructions sur l'attribution passent avant ses lignes par défaut, sauf si la ligne vient des managed settings. La différence est de nature : le réglage retire le texte que Claude Code demande, une instruction est un texte que le modèle lit et applique. Utilise le réglage.

L'ancienne clé includeCoAuthoredBy

Avant attribution, l'interrupteur s'appelait includeCoAuthoredBy. Il est déprécié depuis Claude Code 2.0.62 et toujours lu :

  • "includeCoAuthoredBy": false cache à la fois le trailer des commits et la ligne des pull requests ;
  • dès que attribution.commit ou attribution.pr est défini, Claude Code ignore includeCoAuthoredBy et reprend son texte par défaut pour celle des deux que tu n'as pas définie.

Cette deuxième règle est la raison habituelle du retour du trailer. Tu avais includeCoAuthoredBy: false, puis tu as ajouté "attribution": {"pr": ""} pour retirer seulement la ligne des PR, et le trailer des commits réapparaît, parce que c'est maintenant attribution qui décide et que commit n'est pas défini. Passe à attribution et définis les deux parties.

La remplacer plutôt que la retirer

Certaines équipes veulent garder la trace des commits faits avec l'aide d'une IA, juste pas avec cette ligne. attribution.commit accepte n'importe quel texte, trailers compris. Git ne lit les trailers que dans le dernier paragraphe du message : garde-les ensemble, à la fin.

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

Commite ça dans le .claude/settings.json du projet, et le Claude Code de chaque membre de l'équipe écrit la même ligne.

Les commits qui ont déjà le trailer

Le réglage ne change que les commits écrits après lui. Pour ceux qui sont déjà là, le bon outil dépend de jusqu'où ils sont allés.

Le dernier commit, pas encore poussé : modifie-le et supprime la ligne dans l'éditeur.

git commit --amend

Plusieurs commits sur une branche que tu n'as pas partagée : rebase et reformule chacun.

git rebase -i origin/main

Tout un historique : git filter-repo réécrit chaque message de commit en une passe. Il demande un clone neuf, et c'est un outil à installer à part :

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

Réécrire a un coût, et sur une branche partagée il dépasse souvent celui de la ligne. Chaque hash de commit après le premier modifié est nouveau : une branche poussée demande un force push, chaque collaborateur doit repartir du nouvel historique, les pull requests ouvertes sur les anciens commits cassent, et les commits signés perdent leur signature. Sur une branche perso avant le merge, fais-le. Sur une branche main que d'autres ont déjà récupérée, laisse-la et pose la clé pour la suite.

Ce que le trailer fait sur GitHub

GitHub lit les trailers Co-authored-by et affiche le co-auteur sur le commit quand l'adresse e-mail appartient à un compte GitHub. En juin 2025, deux issues du dépôt anthropics/claude-code (#1653 et #1655) ont signalé des commits attribués, par cette adresse, à un compte GitHub sans lien avec Anthropic ; les deux sont fermées. Quel que soit le compte vers lequel l'adresse pointe un jour donné, retirer le trailer retire le co-auteur des commits qui suivent, et de ceux-là seulement.

Ce que font les autres CLI

Claude Code n'est pas le seul à signer son travail, et chaque CLI a son propre interrupteur.

  • Codex. Dans le code source openai/codex que nous avons lu le 12 novembre 2026, Codex ajoute Co-authored-by: Codex <[email protected]> aux commits et « Generated with Codex. » au corps des pull requests quand l'attribution est activée pour ton espace de travail, une règle qu'il récupère au démarrage d'une session. Quand la règle est coupée, Codex reçoit la consigne de n'ajouter ni l'une ni l'autre.
  • Aider. Il ajoute « (aider) » au nom de l'auteur et du committer git au lieu d'un trailer. --no-attribute-author et --no-attribute-committer coupent ce comportement, et --attribute-co-authored-by le remplace par un trailer Co-authored-by.

Ce que nous faisons dans AgentsRoom

Nous faisons tourner plusieurs agents sur les mêmes dépôts tous les jours, Claude Code à côté de Codex et d'autres, et le commit est l'endroit où leur travail se retrouve. Deux cas, qui ne suivent pas les mêmes règles.

Quand un agent commite lui-même dans son terminal, c'est son CLI qui écrit le message : c'est donc le réglage du CLI qui s'applique, attribution pour Claude Code, la règle de l'espace de travail pour Codex, les options pour Aider.

Quand tu commites depuis AgentsRoom, depuis l'onglet Changes, le mode revue, le commit automatique à la fermeture d'un agent ou l'écran Changes de l'app mobile, c'est AgentsRoom qui écrit le commit, et aucun CLI n'ajoute son trailer. Ce qui va en bas, c'est la signature de commit d'AgentsRoom, et c'est toi qui la règles. Par défaut, elle ajoute une ligne avec le rôle de chaque agent dont les fichiers sont dans le commit et le temps qu'il a passé :

bug : Fix the login redirect

AgentsRoom-Agent: fullstack; time=42m

Chaque partie a son propre interrupteur dans Réglages > Git > Signature de commit, pour ton compte, un dossier de projets ou un seul projet : le rôle de l'agent, le temps passé et, coupés par défaut, le coût, la part de ton quota et les prompts que tu as tapés. Coupe Agent et Temps passé, et tes commits sont exactement ce qu'ils étaient avant. Nous gardons le rôle dans nos propres dépôts : sur un dépôt où quatre CLI commitent, un nom de modèle dit quel modèle a écrit le code, et le rôle dit quel travail il faisait, ce qu'on cherche quand une modification casse quelque chose trois semaines plus tard. Notre changelog public lit la même ligne pour montrer quels agents ont travaillé sur chaque version.

Si tu veux aussi le raisonnement derrière une modification, Commit Context ajoute un lien vers la conversation de l'agent dans le même bloc de trailers. Et si tu préfères ne pas écrire le message du tout, les messages de commit IA le rédigent à partir du diff.

Questions fréquentes

Comment retirer Co-Authored-By Claude de mes commits ?

Ajoute "attribution": {"commit": "", "pr": ""} dans ~/.claude/settings.json. Claude Code arrête alors d'ajouter le trailer Co-Authored-By aux commits qu'il écrit et la ligne Generated with Claude Code aux pull requests qu'il ouvre, dans tous les projets de cette machine. Avec Claude Code 2.1.281 ou plus récent, "attribution": false cache tout en une seule valeur. Les commits faits avant le changement gardent leur trailer.

Est-ce que includeCoAuthoredBy marche encore ?

Il marche encore, mais il est déprécié depuis Claude Code 2.0.62. includeCoAuthoredBy: false cache à la fois le trailer des commits et la ligne des pull requests, sauf si la clé plus récente attribution définit commit ou pr : c'est alors attribution qui décide. Une nouvelle configuration utilise attribution.

Pourquoi le trailer dit Claude Opus 4.6 ou Sonnet 4.6 au lieu de Claude ?

Le trailer nomme le modèle utilisé au moment du commit, il change donc avec ton modèle. Claude Code écrit Claude seul quand il ne peut pas confirmer la version exacte, et Claude Code quand le modèle derrière un ANTHROPIC_BASE_URL personnalisé n'est pas un modèle Claude. Le réglage retire toutes ces variantes.

Comment retirer le trailer des commits déjà faits ?

Pour le dernier commit, lance git commit --amend et supprime la ligne. Pour plusieurs commits pas encore poussés, utilise git rebase -i et reformule-les. Pour tout un historique, git filter-repo avec un message callback retire la ligne de chaque commit, sur un clone neuf. Réécrire change le hash de chaque commit après le premier touché : un historique déjà poussé demande un force push, et chaque collaborateur doit repartir du nouvel historique.

Mon entreprise peut-elle réactiver l'attribution de force ?

Oui. Les managed settings déployés par une organisation passent au-dessus de tous les fichiers que tu contrôles : une valeur d'attribution posée là l'emporte sur tes réglages utilisateur, projet et locaux. Lance /status dans Claude Code : la ligne Setting sources montre si une source managée s'applique à toi.

Retirer le trailer cache-t-il que j'ai utilisé l'IA ?

Il retire une ligne du message de commit, rien d'autre. Claude Code propose lui-même le réglage, et sa documentation ne demande pas de garder la ligne. Certains projets et certains employeurs demandent en revanche de signaler l'aide d'une IA : lis les règles du dépôt où tu pousses avant de la couper.

Ingénieur DevOpsRédacteurDéveloppeur FrontendCommercialDéveloppeur BackendCoach / FormateurArchitecte LogicielJuristeIngénieur QAFinance & adminDéveloppeur Full-StackCréatif / DesignDéveloppeur MobileChercheur / VeilleIngénieur SécuritéRH & recrutement
Chef de ProjetTraducteurExpert GitAnalyste de donnéesSpécialiste SEOComptableSpécialiste de la LocalisationCommunication & RPBrainstormerOpérations & logistiqueSpécialiste MarketingService clientAssistant du projetAcheteurCommunity managerAssistant personnel

Télécharger AgentsRoom

Lancez tous vos agents IA, sur tous vos projets, depuis une seule fenêtre.

Télécharger AgentsRoomGratuit

App companion : suivez vos agents en déplacement

Utilisez Claude, Codex, Antigravity CLI ou un autre fournisseur IA.

Installer l'extension
Chrome Web Store

Remontez bugs et demandes directement dans votre backlog public.

Des agents qu'on lit comme une conversation

Chaque agent a un rôle, un visage et un fil que vous lisez comme une messagerie.

Vue conversation

Vue conversation d'AgentsRoom : le travail d'un agent IA affiché comme un fil de discussion
Multi-projets
Multi-provider
Multi-agents
Statut en direct
Diff & commit
App mobile
Aperçu live
Équipes d'agents
Tests navigateur
Dev pilotée par backlog
Bibliothèque de prompts
Bibliothèque de skills
Voir toutes les fonctionnalités

Continuer la lecture