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éfaut | Sous-clé |
|---|---|---|
| Message de commit | Un trailer : Co-Authored-By: <modèle> <[email protected]> | attribution.commit |
| Description de pull request | Un emoji de robot et « Generated with Claude Code » | attribution.pr |
| Commit ou PR d'une session cloud ou Remote Control | Le lien de la session claude.ai, en trailer Claude-Session sur les commits | attribution.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.
| Valeur | Effet |
|---|---|
"commit": "" | Plus de trailer sur les commits |
"pr": "" | Plus de ligne d'attribution dans les descriptions de pull request |
"sessionUrl": false | Plus de lien de session claude.ai sur les commits et pull requests faits depuis une session cloud ou Remote Control |
"attribution": false | Les 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": falsecache à la fois le trailer des commits et la ligne des pull requests ;- dès que
attribution.commitouattribution.prest défini, Claude Code ignoreincludeCoAuthoredByet 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/codexque nous avons lu le 12 novembre 2026, Codex ajouteCo-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-authoret--no-attribute-committercoupent ce comportement, et--attribute-co-authored-byle remplace par un trailerCo-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.
Télécharger AgentsRoom
Lancez tous vos agents IA, sur tous vos projets, depuis une seule fenêtre.
App companion : suivez vos agents en déplacement
Utilisez Claude, Codex, Antigravity CLI ou un autre fournisseur IA.
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.

Continuer la lecture
Mods de Claude Code : ce que c'est, et celui que nous livrons à chaque agent
Un mod est un plugin dont le JavaScript tourne dans Claude Code. Ce qu'il peut faire, ses trois fichiers, le charger et le tester, et le mod de chacun de nos agents.
Lire l'articleRéduire la consommation de tokens des outils MCP : comment on a allégé nos définitions de 60 %
Chaque outil MCP que ton agent peut appeler est un bloc de JSON que le modèle peut relire à chaque requête. Les nôtres pesaient environ 95 000 tokens. Comment mesurer les tiens en deux minutes, ce qu'on a coupé sans retirer un seul outil, et le contrôle de budget qui l'empêche de regrossir.
Lire l'articleQuelle IA pour coder ? Ce que 1 200 développeurs lancent vraiment
205 366 lancements d'agents en 28 jours : Opus en tête, GPT-6.1 Sol deuxième, et la moitié des comptes sur un modèle que nous suggérons par défaut. Ce que les chiffres prouvent, et ce qu'ils ne peuvent pas dire.
Lire l'article