@Git do analizy
@Git Jakie zmiany wprowadziłem w module auth?
Kontrola wersji i współpraca zespołowa to już nie tylko zarządzanie zmianami w kodzie—to wykorzystanie AI do usprawnienia każdego aspektu przepływu pracy rozwoju. Od generowania znaczącego opisu commitów po rozwiązywanie złożonych konfliktów merge, Cursor zmienia sposób pracy zespołów.
Nigdy więcej nie pisz ogólnikowych opisów commitów. Cursor analizuje twoje zmiany w staging i generuje kontekstowe, znaczące opisy:
Dla szybszych commitów przypisz generowanie opisów do skrótu:
// W Skrótach klawiszowych (Ctrl+K Ctrl+S){ "key": "cmd+m", "command": "cursor.generateGitCommitMessage"}
Użyj @Git
aby wprowadzić informacje o kontroli wersji do rozmów z AI:
@Git do analizy
@Git Jakie zmiany wprowadziłem w module auth?
@Branch Porównanie
@Branch Porównaj obecną gałąź z główną
@Recent-changes
@Recent-changes Pokaż co zmieniło się w ostatniej godzinie
Kontekst PR
@PR #123 Wyjaśnij zmiany w tym PR
Checkpointy to automatyczne migawki tworzone gdy Agent wprowadza zmiany do kodu. To twój natychmiastowy przycisk cofnij dla modyfikacji AI.
Dwa sposoby przywracania:
Kliknij Przywróć checkpoint
przy każdym poprzednim żądaniu Agenta
Najedź na dowolną wiadomość Agenta i kliknij przycisk +
Gdy wystąpią konflikty, pozwól AI pomóc w inteligentnym rozwiązaniu:
<<<<<<< HEADfunction calculateTotal(items) { return items.reduce((sum, item) => sum + item.price, 0);}=======function calculateTotal(items, includeTax = true) { const subtotal = items.reduce((sum, item) => sum + item.cost, 0); return includeTax ? subtotal * 1.08 : subtotal;}>>>>>>> feature/tax-calculation
Agent: Widzę, że obie gałęzie wprowadziły ulepszenia. HEAD zmienił na 'price'a gałąź funkcjonalna dodała kalkulację podatku używając 'cost'. Scalęto inteligentnie:
function calculateTotal(items, includeTax = true) { const subtotal = items.reduce((sum, item) => sum + item.price, 0); return includeTax ? subtotal * 1.08 : subtotal;}
To zachowuje nazwę 'price' z HEAD i funkcję podatku z gałęzi funkcjonalnej.
Przy użyciu integracji GitHub/GitLab MCP:
Agent: Utwórz pull request dla tej funkcji z:- Szczegółowym opisem zmian- Linkami do powiązanych zgłoszeń- Informacją o pokryciu testami
Agent wykona:
Cursor indeksuje wszystkie scalone PR, czyniąc historyczną wiedzę przeszukiwalną:
Zapytaj: Jak implementowaliśmy uwierzytelnianie w poprzednich PR?
Agent przeszukuje historię PR i znajduje:- PR #45: "Dodaj uwierzytelnianie JWT"- PR #89: "Implementuj przepływ OAuth2"- PR #123: "Dodaj uwierzytelnianie dwuskładnikowe"
[Agent dostarcza podsumowania i może pobrać pełne szczegóły PR]
BugBot automatycznie recenzuje PR pod kątem potencjalnych problemów:
Wykrywanie błędów
Wykrywa sprawdzanie null, obsługę błędów, problemy bezpieczeństwa
Standardy kodu
Egzekwuje konwencje zespołu i najlepsze praktyki
Wydajność
Oznacza potencjalne problemy wydajnościowe
Bezpieczeństwo
Identyfikuje luki w zabezpieczeniach
Utwórz .cursor/BUGBOT.md
z zasadami specyficznymi dla zespołu:
# Konfiguracja BugBot
## Krytyczne zasady- Wszystkie endpointy API muszą mieć uwierzytelnianie- Brak instrukcji console.log w kodzie produkcyjnym- Zapytania SQL muszą używać parametryzowanych instrukcji
## Styl kodu- Używaj async/await zamiast promises- Preferuj const nad let- Destrukturyzuj obiekty gdy to możliwe
## Wydajność- Ostrzegaj o wzorcach zapytań N+1- Oznaczaj synchroniczne operacje na plikach- Sprawdzaj brakujące indeksy bazy danych
Zespoły mogą dzielić się pracą nad indeksowaniem dla szybszego wdrażania:
Pamięć przechwytuje ważne decyzje projektowe i kontekst:
Programista A: Omawia architekturę uwierzytelniania z CursorCursor: Tworzy pamięć "Auth używa JWT z 15-minutowym wygaśnięciem"
Programista B: Później pyta o implementację authCursor: Odwołuje się do pamięci i dostarcza spójną odpowiedź
Spójność na poziomie zespołu poprzez .cursor/rules/
:
- Używaj TypeScript dla wszystkich nowych plików- Podążaj za konfiguracją ESLint- Pisz testy dla wszystkich nowych funkcji- Używaj semantycznych opisów commitów
- Wszystkie endpointy zwracają spójny format błędów- Używaj middleware do uwierzytelniania- Waliduj input ze schematami Joi- Zwracaj 201 dla pomyślnego utworzenia
- Minimalne pokrycie testów jednostkowych 80%- Testy integracyjne dla wszystkich endpointów API- Testy E2E dla krytycznych przepływów użytkownika- Mockuj zewnętrzne serwisy w testach
Praca nad wieloma funkcjami jednocześnie:
# Terminal 1 - Funkcja AAgent: Utwórz nową gałąź dla funkcji profilu użytkownika[Agent tworzy gałąź, rozpoczyna rozwój]
# Terminal 2 - Funkcja BAgent: W nowej gałęzi implementuj system powiadomień[Agent pracuje niezależnie]
# Później - IntegracjaAgent: Pomoż mi scalić obie funkcje i rozwiązać konflikty
Recenzent: @Code Wyjaśnij przepływ uwierzytelniania w tym PR
Agent: Napraw problemy które BugBot zidentyfikował w PR #234
W Slack:@Cursor podsumuj PR #456 dla zespołu QA
Cursor odpowiada:Ten PR dodaje funkcjonalność resetowania hasła:- Użytkownicy mogą żądać resetu przez email- Tokeny wygasają po 1 godzinie- Zawiera ograniczenia częstości (3 próby/godzinę)- Dodane pełne pokrycie testami
Agent: Wygeneruj dokumentację API z naszej bazy kodu dlazespołu frontend. Dołącz przykłady i wymagania uwierzytelniania.
Jeśli używasz serwera Git MCP:
Agent: Utwórz nową gałąź funkcjonalną, cherry-pick commity5abc123 i 7def456 z main, następnie wypchnij do origin
Agent: Pomoż mi zrebasować tę gałąź funkcjonalną na main.Rozwiąż konflikty zachowując nasze zmiany funkcjonalne.
Przykład hook pre-commit:
#!/bin/bash# Uruchom linting i sprawdzanie typów przed commitemnpm run lintnpm run type-check
Spójne standardy
Używaj wspólnych zasad i konfiguracji BugBot
Przechwytywanie wiedzy
Zaakceptuj pomocne pamięci dla korzyści zespołu
Regularne synchronizacje
Dziel się naukami AI w spotkaniach zespołu
Stopniowe wdrażanie
Zacznij od ochotników, rozszerzaj stopniowo
Śledź te metryki aby zmierzyć poprawę:
Problem: Członek zespołu Cursor reindeksuje od zera
Rozwiązanie:1. Sprawdź ustawienia zespołu w Cursor2. Upewnij się, że "Dziel indeks bazy kodu" jest włączone3. Sprawdź czy członek zespołu ma odpowiednie uprawnienia
Problem: BugBot nie wykrywa oczywistych problemów
Rozwiązanie:1. Przejrzyj konfigurację .cursor/BUGBOT.md2. Dodaj specyficzne zasady dla twoich wzorców3. Sprawdź czy BugBot jest włączony w ustawieniach
Problem: Zespół nie widzi nawzajem swoich pamięci
Rozwiązanie:1. Upewnij się, że używasz tego samego workspace projektu2. Sprawdź ustawienia dzielenia pamięci3. Ręcznie zatwierdź pamięci do dzielenia
Zmień współpracę swojego zespołu: