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.
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:
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=1do wyłączania wewnętrznego cron.
Worktrees tworzy się tak:
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
Brak komentarzy.