Powrót do strony głównej

Błąd Claude Code: reset Git co 10 minut

Claude Code 2.1.87 na macOS wykonuje ukryty git reset co 10 minut, niszcząc niezacommitowane zmiany. Dochodzenie wyklucza zewnętrzne przyczyny, proponuje sprawdzenie reflog i ochronę za pomocą worktrees z DISABLE_CRON.

Poważny błąd Claude Code: traci kod co 10 min
Advertisement 728x90

Claude Code potajemnie resetuje zmiany w Git co 10 minut

Claude Code wersji 2.1.87 na macOS automatycznie wykonuje git fetch origin i git reset --hard origin/main co 600 sekund. To prowadzi do utraty wszystkich niezacommitowanych zmian w śledzonych plikach repozytorium. Deweloper zarejestrował ponad 95 takich operacji w ciągu 36 godzin w czterech sesjach za pomocą git reflog.

Weryfikacja potwierdziła problem: zmiany w plikach tracked są cofane dokładnie po 10 minutach, pliki untracked pozostają nietknięte. Monitorowanie systemu plików pokazało tworzenie plików lock w .git/refs/remotes/origin/HEAD i .git/refs/heads/main bez uruchamiania zewnętrznych procesów git. Operacje są zintegrowane z procesem Claude Code, prawdopodobnie poprzez libgit2.

Badanie przyczyn

Wykluczono czynniki zewnętrzne: git hooks, cron, synchronizatory chmurowe, IDE, Time Machine, file watchers, wtyczki. Jedyny proces z dostępem to Claude Code z flagą --dangerously-skip-permissions. Przesunięcie czasu w reflog jest stabilne w sesji, ale różni się między uruchomieniami, wskazując na wewnętrzny timer.

Google AdInline article slot

CHANGELOG wspomina CLAUDE_CODE_DISABLE_CRON do wyłączania okresowych zadań. Błąd jest niezauważalny przy częstych commitach — Claude Code je zachęca, czyniąc reset nieszkodliwym. Problem ujawnia się przy dłuższej pracy z WIP-zmianami: w 2 godziny utracono co najmniej 3 poprawki.

Na GitHub podobne skargi bez głębokiej analizy. Anthropic na razie nie komentuje.

Jak sprawdzić i chronić się

Sprawdź reflog:

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

Szukaj wpisów co 10 minut.

Środki ochronne:

  • Komitować zmiany co 5–7 minut.
  • Używać git worktrees: są całkowicie izolowane od resetu.
  • Uruchamiać z CLAUDE_CODE_DISABLE_CRON=1 do wyłączania wewnętrznego cron.

Worktrees tworzy się tak:

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

Przełączanie między nimi zapobiega utracie danych.

Co ważne

  • Automatyczny reset co 10 min: niszczy niezacommitowane zmiany w plikach tracked.
  • Wewnętrzny timer: powiązany z uruchomieniem sesji, sterowany przez CLAUDE_CODE_DISABLE_CRON.
  • Powtarzalne na macOS 2.1.87: libgit2 bez zewnętrznych procesów.
  • Worktrees jako rozwiązanie: pełna odporność na błąd.
  • Sprawdzenie reflog: klucz do diagnozy w twoim projekcie.

— Editorial Team

Advertisement 728x90

Czytaj dalej