Przejdź do głównej zawartości

Strategie punktów kontrolnych i rozgałęziania

Poprosiłeś Agenta o refaktoryzację modułu uwierzytelniania. Przepisał sześć plików, zreorganizował importy i zaktualizował trzy pliki testów. Potem zauważyłeś, że zmienił także logikę poolingu połączeń bazy danych — coś, o co nigdy nie prosiłeś. Naciskasz cofnij kilka razy, ale zmiany są przeplatane w plikach i nie możesz wrócić do czystego stanu. Zamykasz Cursor, uruchamiasz git checkout . i tracisz zmiany uwierzytelniania, które faktycznie chciałeś.

Ten scenariusz jest całkowicie możliwy do uniknięcia. System punktów kontrolnych Cursor w połączeniu z zdyscyplinowanym rozgałęzianiem git daje sieć bezpieczeństwa, która pozwala agresywnie eksperymentować bez ryzykowania działającego kodu.

  • Przepływ pracy wykorzystujący automatyczne punkty kontrolne Cursor do cofania niechcianych zmian AI
  • Strategię rozgałęziania git zaprojektowaną specjalnie dla rozwoju wspomaganego przez AI
  • Techniki łączenia punktów kontrolnych z commitami git dla wielowarstwowego bezpieczeństwa
  • Prompty gotowe do skopiowania i wklejenia dla bezpiecznych wzorców eksperymentowania

Za każdym razem, gdy Agent wprowadza zestaw zmian, Cursor automatycznie tworzy punkt kontrolny. Ten punkt kontrolny przechwytuje stan wszystkich zmodyfikowanych plików przed zastosowaniem zmian. Możesz przywrócić dowolny punkt kontrolny, aby cofnąć określony zestaw zmian AI bez wpływu na inną pracę.

Punkty kontrolne są widoczne w historii czatu. Każda odpowiedź Agenta, która zmodyfikowała pliki, ma opcję “Restore”, która przywraca bazę kodu do stanu sprzed tych zmian.

Punkty kontrolne są lokalne dla sesji Cursor. Nie są zachowywane między restartami IDE. Nie przechwytują efektów ubocznych terminala (jeśli Agent uruchomił migrację bazy danych, przywrócenie punktu kontrolnego nie cofa migracji). I śledzą tylko zmiany plików — jeśli Agent usunął plik, przywrócenie go przywraca, ale jeśli Agent utworzył nowe pliki, które następnie ręcznie edytowałeś, sprawy się komplikują.

Dlatego same punkty kontrolne nie wystarczają. Potrzebujesz git jako głównej sieci bezpieczeństwa.

Warstwa 1 to commity git. Warstwa 2 to punkty kontrolne Cursor. Używaj ich razem:

  1. Stwórz gałąź funkcji przed rozpoczęciem jakiejkolwiek pracy wspomaganej przez AI
  2. Zatwierdź obecny czysty stan (nawet jeśli to tylko utworzenie gałęzi)
  3. Pozwól Agentowi wprowadzić zmiany — Cursor automatycznie tworzy punkty kontrolne
  4. Przejrzyj zmiany. Jeśli wyglądają dobrze, zatwierdź je z opisowym komunikatem
  5. Jeśli zmiany są częściowo dobre, użyj punktu kontrolnego do przywrócenia, następnie ponownie zapytaj z bardziej konkretnymi instrukcjami
  6. Jeśli wszystko poszło źle, git checkout . aby wrócić do ostatniego commitu

Standardowe rozgałęzianie git działa dla rozwoju AI, ale kadencja jest inna. Z AI generujesz więcej spekulatywnych zmian, które mogą albo wyjść, albo nie. To wymaga częstszych, mniejszych commitów i gotowości do całkowitego odrzucenia gałęzi.

Zamiast jednej gałęzi funkcji z wieloma commitami, twórz mikro-gałęzie dla każdego eksperymentu AI:

Okno terminala
# Główna gałąź funkcji
git checkout -b feature/payment-system
# Mikro-gałąź dla pierwszego eksperymentu AI
git checkout -b feature/payment-system/stripe-approach
# Jeśli działa, scalaj z powrotem
git checkout feature/payment-system
git merge feature/payment-system/stripe-approach
# Jeśli nie działa, odrzuć
git checkout feature/payment-system
git branch -D feature/payment-system/stripe-approach

Ten wzorzec dobrze działa, gdy chcesz, aby Agent wypróbował różne podejścia do tego samego problemu. Uruchom gałąź, pozwól Agentowi pracować, oceń wynik i albo scal, albo odrzuć.

Zatwierdzaj częściej niż przy ręcznym kodowaniu:

  • Przed każdym promptem Agenta — Więc masz czysty punkt przywracania
  • Po każdej udanej zmianie Agenta — Zablokuj dobrą pracę natychmiast
  • Po ręcznych poprawkach wyjścia AI — Trzymaj swoje udoskonalenia oddzielnie od pracy AI

Cursor obsługuje równoległych agentów działających w izolowanych drzewach roboczych git. Możesz uruchomić ten sam prompt przeciwko wielu modelom jednocześnie, porównać wyniki i zastosować najlepszy.

Cursor automatycznie tworzy i zarządza drzewami roboczymi dla równoległych agentów. Gdy uruchamiasz równoległego agenta, otrzymuje własną kopię bazy kodu. Twoje główne drzewo robocze pozostaje nietknięte, dopóki nie zdecydujesz się zastosować zmian.

Skonfiguruj inicjalizację drzewa roboczego w .cursor/worktrees.json:

{
"setup-worktree": [
"npm ci",
"cp $ROOT_WORKTREE_PATH/.env .env"
]
}

Dla projektów Python:

{
"setup-worktree": [
"python -m venv venv",
"source venv/bin/activate && pip install -r requirements.txt",
"cp $ROOT_WORKTREE_PATH/.env .env"
]
}

Wyślij ten sam prompt do dwóch lub więcej modeli i porównaj ich podejścia:

  1. Wybierz wiele modeli w rozwijanym menu równoległego agenta
  2. Prześlij swój prompt
  3. Każdy model pracuje niezależnie w swoim własnym drzewie roboczym
  4. Porównaj wyniki obok siebie
  5. Kliknij “Apply” na ten, który preferujesz

To jest potężne dla trudnych problemów, gdzie różne modele przyjmują różne podejścia. Możesz również użyć tego do benchmarkowania, który model działa najlepiej dla Twojej bazy kodu.

Dla dużych, wieloetapowych funkcji:

  1. Poproś Agenta o implementację kroku 1 Twojego planu
  2. Przejrzyj zmiany, zatwierdź jeśli dobre
  3. Poproś Agenta o implementację kroku 2, budując na zatwierdzonym kroku 1
  4. Przejrzyj, zatwierdź
  5. Kontynuuj, aż zakończysz

Jeśli krok 3 się nie powiedzie, tracisz tylko pracę kroku 3. Kroki 1 i 2 są bezpiecznie zatwierdzone.

Agent często generuje zmiany, które są w 80% poprawne. Zamiast akceptować lub odrzucać wszystko:

  1. Przejrzyj diff w widoku zmian Cursor
  2. Akceptuj zmiany, które chcesz (kliknij znacznik wyboru na poszczególnych plikach)
  3. Odrzuć zmiany, których nie chcesz
  4. Zatwierdź zaakceptowane zmiany
  5. Ponownie zapytaj Agenta tylko o odrzucone części, będąc bardziej konkretnym

Punkty kontrolne znikają po restarcie Cursor. Są lokalne dla sesji. Zawsze zatwierdzaj ważną pracę do git. Nigdy nie polegaj na punktach kontrolnych jako jedynej sieci bezpieczeństwa.

Agent modyfikuje pliki, które już zatwierdziłeś. Rozpocznij nowy czat dla każdego odrębnego zadania. Długie rozmowy powodują, że agent traci track tego, co zostało zatwierdzone, a co jest nadal w toku.

Konfiguracja drzewa roboczego się nie powodzi. Sprawdź .cursor/worktrees.json pod kątem błędów składni. Debuguj skrypt konfiguracyjny przez panel Output, wybierając “Worktrees Setup” z menu rozwijanego. Użyj pnpm lub bun zamiast npm install dla szybszej inicjalizacji drzewa roboczego.

Konflikty scalania przy zastosowaniu zmian z drzewa roboczego. Cursor oferuje “Full Overwrite” lub natywną rozdzielczość konfliktów. Dla złożonych konfliktów zastosuj zmiany z drzewa roboczego do nowej gałęzi i rozwiąż tam.