Zpět na domů

Chyba Claude Code: reset Git každých 10 minut

Claude Code 2.1.87 na macOS provádí skrytý git reset každých 10 minut, ničí nezakommitované změny. Šetření vylučuje externí příčiny, navrhuje kontrolu reflog a ochranu přes worktrees s DISABLE_CRON.

Vážná chyba Claude Code: ztrácí kód každých 10 min
Advertisement 728x90

# Claude Code tajně resetuje změny v Git každých 10 minut

Claude Code verze 2.1.87 na macOS automaticky provádí git fetch origin a git reset --hard origin/main každých 600 sekund. To vede k ztrátě všech nezakomittovaných změn v sledovaných souborech repozitáře. Vývojář zachytil více než 95 takových operací během 36 hodin ve čtyřech sezeních prostřednictvím git reflog.

Opakování potvrdilo problém: změny v tracked-souborech se vrátí přesně po 10 minutách, nesledované soubory zůstávají nedotčené. Monitorování souborového systému ukázalo vytváření lock-souborů v .git/refs/remotes/origin/HEAD a .git/refs/heads/main bez spuštění externích git-procesů. Operace jsou integrovány do procesu Claude Code, pravděpodobně prostřednictvím libgit2.

Zjišťování příčin

Byly vyloučeny externí faktory: git hooks, cron, cloudové synchronizátory, IDE, Time Machine, file watchers, pluginy. Jediný proces s přístupem je Claude Code s příznakem --dangerously-skip-permissions. Posun času v reflog je stabilní v sezení, ale liší se mezi spuštěními, což ukazuje na interní časovač.

Google AdInline article slot

CHANGELOG zmiňuje CLAUDE_CODE_DISABLE_CRON pro vypnutí periodických úkolů. Chyba je nenápadná při častých commitů – Claude Code je podporuje, takže reset je neškodný. Problém se projevuje při dlouhodobé práci s WIP-změnami: za 2 hodiny ztraceno minimálně 3 úpravy.

Na GitHubu podobné stížnosti bez hlubší analýzy. Anthropic zatím nekomentuje.

Jak ověřit a ochránit se

Zkontrolujte reflog:

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

Hledejte záznamy s intervalem 10 minut.

Opatření k ochraně:

  • Kommitovat změny každých 5–7 minut.
  • Používat git worktrees: jsou plně izolované od resetu.
  • Spouštět s CLAUDE_CODE_DISABLE_CRON=1 pro vypnutí interního cronu.

Worktrees se vytvářejí takto:

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

Přepínání mezi nimi zabraňuje ztrátě dat.

Co je důležité

  • Automatický reset každých 10 min: ničí nezakomittované změny v tracked souborech.
  • Interní časovač: vázaný na spuštění sezení, ovládán CLAUDE_CODE_DISABLE_CRON.
  • Reprodukovatelné na macOS 2.1.87: libgit2 bez externích procesů.
  • Worktrees jako řešení: plná imunita vůči chybě.
  • Kontrola reflog: klíč k diagnostice ve vašem projektu.

— Editorial Team

Advertisement 728x90

Číst dál