Retour à l'accueil

Bug de Claude Code : Git reset toutes les 10 minutes

Claude Code 2.1.87 sur macOS effectue un git reset caché toutes les 10 minutes, détruisant les modifications non validées. L'enquête exclut les causes externes, suggère une vérification reflog et une protection via worktrees avec DISABLE_CRON.

Bug grave de Claude Code : perd du code toutes les 10 min
Advertisement 728x90

Claude Code réinitialise secrètement les modifications Git toutes les 10 minutes

Claude Code version 2.1.87 sur macOS exécute automatiquement git fetch origin et git reset --hard origin/main toutes les 600 secondes. Cela entraîne la perte de toutes les modifications non validées dans les fichiers suivis du dépôt. Un développeur a enregistré plus de 95 opérations de ce type sur 36 heures lors de quatre sessions en utilisant git reflog.

La reproduction a confirmé le problème : les modifications dans les fichiers suivis sont annulées exactement 10 minutes plus tard, tandis que les fichiers non suivis restent intacts. La surveillance du système de fichiers a révélé la création de fichiers de verrou dans .git/refs/remotes/origin/HEAD et .git/refs/heads/main sans lancer aucun processus git externe. Ces opérations sont intégrées au processus Claude Code, probablement via libgit2.

Enquête sur la cause

Facteurs externes écartés : git hooks, cron jobs, services de synchronisation cloud, IDEs, Time Machine, observateurs de fichiers, plugins. Seul le processus Claude Code exécuté avec l'option --dangerously-skip-permissions y a accès. Les décalages temporels dans le reflog sont cohérents au sein d'une session mais varient entre les exécutions, indiquant un minuteur interne.

Google AdInline article slot

Le CHANGELOG mentionne CLAUDE_CODE_DISABLE_CRON pour désactiver les tâches périodiques. Le bug passe inaperçu avec des commits fréquents — Claude Code les encourage, rendant la réinitialisation inoffensive. Le problème apparaît lors de travaux prolongés avec des modifications en cours : au moins 3 éditions perdues en 2 heures.

Des plaintes similaires sur GitHub manquent d'analyse approfondie. Anthropic n'a pas encore commenté.

Comment vérifier et se protéger

Vérifiez le reflog :

Google AdInline article slot
git reflog | grep "reset: moving to origin"

Recherchez des entrées espacées de 10 minutes.

Mesures de protection :

  • Validez les modifications toutes les 5–7 minutes.
  • Utilisez les git worktrees : elles sont totalement isolées de la réinitialisation.
  • Lancez avec CLAUDE_CODE_DISABLE_CRON=1 pour désactiver le cron interne.

Les worktrees se créent ainsi :

Google AdInline article slot
git worktree add ../project-worktree main

Passer de l'un à l'autre empêche la perte de données.

Points clés

  • Réinitialisation automatique toutes les 10 minutes : efface les modifications non validées dans les fichiers suivis.
  • Minuteur interne : lié au démarrage de la session, contrôlé par CLAUDE_CODE_DISABLE_CRON.
  • Reproductible sur macOS 2.1.87 : libgit2 sans processus externes.
  • Worktrees comme solution : immunité totale au bug.
  • Vérifiez le reflog : la clé du diagnostic dans votre projet.

— Editorial Team

Advertisement 728x90

Lire ensuite