Přeskočit na obsah

Lekce 03.5: Pohyb v čase: Git záchranná síť a /rewind (Going Forwards and Backwards)

⏱️ 3 min čtení Lekce 03.5

🧠 Mentální model & teoretický rozbor

Strach z toho, že agent rozbije funkční projekt, je hlavní brzdou odvahy delegovat složité úkoly. Jakmile však ovládnete mechanismus návratu v čase, získáte absolutní inženýrskou svobodu:

STROM MOŽNÝCH HISTORIÍ V GITU:
commit A (Stabilní základ v repozitáři)
├── Pokus agenta 1 (Slepá ulička) ──> git reset --hard A (Návrat za 2s)
└── Pokus agenta 2 (Úspěšný čistý refaktor) ──> commit B (Nový stabilní bod)

Návrat v čase funguje na dvou úrovních:

  1. Mikro-úroveň (Harness Rollback / Příkaz /rewind v Claude Code): Claude Code nabízí příkaz /rewind (nebo stisknutí Esc dvakrát v prázdném promptu). Zobrazí interaktivní menu s historií změn souborů a umožní vrátit buď kód, konverzaci, nebo obojí. (Pozor: Starší návody mylně uvádějí neexistující příkaz /undo).
  2. Makro-úroveň (Git commit / stash / reset): Univerzální, deterministická bezpečnostní síť pro Antigravity (agy), Claude Code i jakýkoliv jiný nástroj.

🏢 Realistický scénář z praxe

Vývojář chce vyzkoušet přechod z Redux Toolkit na TanStack Query v produkční aplikaci:

  • Před zahájením vytvoří větev: git checkout -b feat/tanstack-migration.
  • Vytvoří stabilní checkpoint: git commit -am "checkpoint: pred migraci".
  • Nechá agenta provést radikální experiment na 15 souborech.
  • Po 20 minutách zjistí, že serverové komponenty v Next.js mají problém se serializací.
  • Místo hodin ručního vracení změn zadá:
    Terminál
    git reset --hard HEAD && git clean -fd
    A projekt je zpět v perfektním, funkčním stavu během 1 sekundy. V agentu zadá /clear a pokračuje novým zadáním.

💻 Konkrétní ukázky kódu & promptů

Arzenál pro cestování časem v terminálu:

Terminál
# 1. Zahození všech lokálních úprav ve sledovaných souborech
git checkout .
# 2. Odstranění všech nově vzniklých nesledovaných souborů a složek
git clean -fd
# 3. Návrat na konkrétní commit s kompletním smazáním změn
git reset --hard HEAD
# 4. Interaktivní návrat v čase v Claude Code (kód vs. konverzace):
/rewind

⚠️ Analýza selhání & Anti-patterns

Chyba: Provádění experimentů na “špinavém” pracovním stromu

Pokud spustíte agenta v repozitáři, kde máte rozdělané své vlastní necommitnuté změny:

  • Agent provede své úpravy a promíchá je s vaším rozpracovaným kódem.
  • Pokud se pokus nezdaří, nemůžete použít git reset --hard, aniž byste přišli o svou vlastní práci!
  • Železné inženýrské pravidlo: Před spuštěním agenta musí být pracovní strom čistý (git status hlásí nothing to commit, working tree clean). Vlastní rozdělanou práci odložte do git stash.

🛠️ Inženýrský postup krok za krokem (Playbook)

  1. Čistý stůl: Zkontrolujte git status. Pokud máte rozdělanou práci, odložte ji: git stash save "moje-prace".
  2. Checkpoint: Vytvořte commit před zahájením úkolu: git commit -am "checkpoint: pred refaktorem".
  3. Experiment: Nechte agenta pracovat.
  4. Rozcestí:
    • Pokud je kód perfektní ➔ git commit --amend nebo nový čistý commit.
    • Pokud se agent zamotal ➔ git reset --hard HEAD && git clean -fd a v agentu /clear.

🧪 Praktické cvičení (Hands-on Lab)

Úkol:

Vyzkoušejte si proceduru bleskového návratu v čase pomocí Gitu a příkazu /rewind.

Kroky:

  1. Vytvořte soubor temp.txt s textem „Původní stav“ a commitněte ho:
    Terminál
    git add temp.txt && git commit -m "test: vychozi temp"
  2. V agentu (agy nebo claude) požádejte: „Uprav temp.txt a přidej 3 nové funkce a smaž původní text.“
  3. V Claude Code vyzkoušejte příkaz /rewind (nebo 2x Esc) a prozkoumejte interaktivní menu checkpointů.
  4. V shellu vyzkoušejte definitivní Git reset:
    Terminál
    git reset --hard HEAD && git clean -fd
  5. Ověřte, že temp.txt je v původním stavu a repozitář je 100% čistý.