Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Postępuj zgodnie z tymi wytycznymi, aby uzyskać najlepsze wyniki z modernizacji GitHub Copilot podczas uaktualniania projektów .NET.
Zanim zaczniesz
Przygotuj projekty przed rozpoczęciem uaktualniania, aby uzyskać najlepsze wyniki.
Sprawdź, czy kompilacje i testy rozwiązania przeszły pomyślnie
Agent weryfikuje zmiany wprowadzone przez uruchomienie kompilacji i testów. Jeśli Twoje rozwiązanie jest już niesprawne przed rozpoczęciem, agent nie może odróżnić istniejących błędów od problemów, które wprowadził.
Zadokumentuj wszystkie znane niepowodzenia testów w scenario-instructions.md, aby agent wiedział, które z nich zignorować.
Zatwierdzanie lub usuwanie niezatwierdzonych prac
Zacznij od czystego katalogu roboczego, aby uniknąć mieszania się niezatwierdzonych zmian z wprowadzonymi przez agenta. Czysta linia bazowa ułatwia przeglądanie lub przywracanie zmian.
git stash
git status
Tworzenie kopii zapasowych repozytoriów innych niż Git
Agent współpracuje również z folderami, które nie są pod kontrolą źródła. Jeśli projekt nie znajduje się w repozytorium Git, agent pomija operacje rozgałęzienia i zatwierdzania. Jeśli tak, wykonaj kopię zapasową folderu projektu przed rozpoczęciem, aby można było go przywrócić w razie potrzeby.
Rozważ zainicjowanie lokalnego repozytorium Git przed rozpoczęciem uaktualniania, nawet jeśli nie wypchniesz go do dostawcy usług w chmurze. Lokalne repozytorium Git umożliwia:
- Wycofaj poszczególne zmiany za pomocą polecenia
git revert. - Śledź krok po kroku postęp aktualizacji w historii zatwierdzeń.
- Kontrolowanie, które zmiany mają być zachowywane lub odrzucane.
- Przechowuj bezpiecznie oryginalny kod w gałęzi głównej, gdy agent pracuje w oddzielnej gałęzi.
cd your-project-folder
git init
git add .
git commit -m "Baseline before upgrade"
Przejrzyj pokrycie testów
Agent opiera się na testach, aby sprawdzić, czy jego zmiany nie przerywają działania. Projekty z dobrym pokryciem testowym uzyskują uaktualnienia o wyższej niezawodności.
Napiwek
Nie potrzebujesz 100% pokrycia. Skup się na kodzie, który najprawdopodobniej zmieni się, na przykład granice interfejsu API, serializacja, dostęp do bazy danych i uwierzytelnianie.
Rozpocznij od małej
Jeśli używasz agenta po raz pierwszy, wybierz mały projekt o niskim ryzyku jako projekt pilotażowy. Biblioteka klas lub projekt narzędziowy jest idealnym rozwiązaniem. Zaczynanie od małych projektów pozwala zrozumieć przepływ pracy, budować pewność siebie i zidentyfikować wszelkie problemy specyficzne dla repozytorium przed zajęciem się główną aplikacją.
Podczas uaktualniania
Postępuj zgodnie z tymi wytycznymi, gdy agent zarządza procesem uaktualniania.
Korzystanie z trybu z przewodnikiem na potrzeby pierwszego uaktualnienia
Agent obsługuje tryby sterowane i automatyczne. W trybie z przewodnikiem agent wstrzymuje się w kluczowych punktach decyzyjnych, aby umożliwić Twoją ocenę i zatwierdzenie. Zacznij od trybu z przewodnikiem, aby dowiedzieć się, co robi agent i dlaczego. Przełącz się na tryb automatyczny, gdy będziesz zaznajomiony z procesem pracy.
Uważnie przejrzyj ocenę
Ocena jest najlepszą okazją do przechwytywania problemów przed rozpoczęciem wprowadzania zmian przez agenta. Wyszukaj:
- Projekty, które agent mógł przeoczyć lub błędnie zidentyfikować.
- Zależności, o których wiesz, że są problematyczne.
- Cokolwiek niezwykłego w twoim rozwiązaniu, które agent powinien wiedzieć.
Jeśli coś zauważysz, poinformuj agenta na czacie lub dodaj informacje do elementu scenario-instructions.md. Edytuj assessment.md bezpośrednio, aby dodać kontekst, poprawić błędnie zidentyfikowane projekty lub oznaczyć problemy, zanim agent przejdzie do planowania.
Poświęć czas na planowanie
Agent generuje plan na podstawie oceny. Przed kontynuowaniem przejrzyj plan:
- Czy kolejność ma sens dla bazy kodu?
- Czy istnieją zależności, o których agent może nie wiedzieć?
- Czy jakiekolwiek projekty powinny być wykluczone lub obsługiwane inaczej?
Poproś agenta o zmianę kolejności zadań, pominięcie projektów lub zmianę podejścia. Znasz bazę kodu lepiej niż agent, więc użyj tej wiedzy.
plan.md Edytuj plik bezpośrednio, aby dostosować kolejność zadań, dodać zadania lub usunąć zadania.
Ostrzeżenie
Należy zachować ostrożność podczas bezpośredniej edycji plan.md. Agent może nie w pełni interpretować zmian, jeśli one tworzą sprzeczne instrukcje. Na przykład usunięcie projektu zależności przy zachowaniu projektów, które są od niego zależne.
Prześlij opinię natychmiast
Agent uczy się na podstawie twoich poprawek w ramach sesji. Jeśli agent dokona wyboru, nie zgadzasz się z:
- Powiedz to od razu: "Nie używaj tego wzorca, zamiast tego użyj języka X".
- Dodaj trwałe wskazówki do
scenario-instructions.md, aby agent zapamiętywał w różnych zadaniach i sesjach.
Bądź zaangażowany podczas wykonywania
Wykonywanie wymaga zaangażowania. Przed uruchomieniem agenta zapoznaj się z zawartością tasks.md:
- Czy kolejność zadań ma sens dla bazy kodu?
- Czy istnieją zadania, które chcesz pominąć lub przeprowadzić ponowne sekwencjonowanie?
- Czy brakuje zadań?
Poproś agenta o dostosowanie listy zadań lub edycję tasks.md bezpośrednio przed rozpoczęciem wykonywania. Po rozpoczęciu wykonywania, jeśli agent popełni błąd w trakcie zadania, poinformuj go natychmiast — zastosuje poprawkę przy kolejnych działaniach.
Wiesz, że baza kodu jest lepsza niż agent, więc używaj tej wiedzy na każdym etapie.
Typowe pułapki
Poszukaj tych typowych problemów, które mogą spowalniać lub komplikować uaktualnienie.
Duże rozwiązania z ponad 50 projektami
Agent działa w projekcie po projekcie, więc duże rozwiązania zajmują trochę czasu. Bądź cierpliwy i monitoruj postęp. Rozważ rozpoczęcie od jednego reprezentatywnego projektu od początku do końca przed zatwierdzeniem pełnego rozwiązania. Na wczesnym etapie pilotażu pojedynczego projektu występują problemy systemowe.
Prywatne kanały informacyjne NuGet
W przypadku prywatnych źródeł danych NuGet uwierzytelnij się przed rozpoczęciem uaktualniania (na przykład za pośrednictwem dostawcy poświadczeń organizacji lub konfiguracji źródła danych). Bez uwierzytelnienia niepowodzenie w przywracaniu pakietów blokuje postęp.
Niestandardowe cele i importy programu MSBuild
Złożone dostosowania kompilacji, takie jak pliki niestandardowe .targets , import warunkowy lub niestandardowa logika kompilacji, mogą mylić ocenę i powodować nieoczekiwane błędy kompilacji. Jeśli twoje rozwiązanie ma te dostosowania, podaj je na czacie lub w scenario-instructions.md taki sposób, aby agent mógł je uwzględnić.
Przekroczenia czasu sesji
Długotrwałe uaktualnienia mogą obejmować wiele sesji. Agent śledzi postęp w plikach przepływu pracy (w katalogu .github/upgrades/), aby mógł kontynuować od miejsca, w którym został przerwany. Po rozpoczęciu nowej sesji wskaż, gdzie byłeś: "Kontynuuj uaktualnienie .NET 10. Byłem w środku projektu Data.Access."
Efektywna współpraca
Jakość interakcji bezpośrednio wpływa na jakość wyników.
Określanie zakresu
Tym bardziej szczegółowe informacje, tym lepiej działa agent:
| Zamiast | Spróbuj |
|---|---|
| "Uaktualnij wszystko" | "Uaktualnianie projektu Data.Access do .NET 10" |
| "Napraw kompilację" | "Naprawiono błąd kompilacji w CustomerService.cs powiązany z usuniętym interfejsem API" |
| "Uaktualnij elementy bazy danych" | "Uaktualnianie programu Entity Framework 6 do programu EF Core w projekcie repozytorium" |
Udostępnij swoje ograniczenia
Poinformuj agenta o rzeczywistych ograniczeniach z góry:
- "Nie możemy utracić zgodności z poprzednimi wersjami w publicznym interfejsie API."
- "Mamy termin wydania w ciągu dwóch tygodni, więc nadaj priorytet projektom internetowym".
- "Starszy moduł raportowania powinien zostać wykluczony z tego uaktualnienia".
Wyjaśnienie architektury
Agent analizuje strukturę kodu, ale nie zna modelu psychicznego twojego zespołu. Pomóż agentowi zrozumieć:
- Project A to nasza wspólna biblioteka. B, C i D wszystko zależy od niego."
- "Projekt WebApi jest naszym publicznym interfejsem API; Internal.Api jest przeznaczony tylko dla usług wewnętrznych".
- "Projekt Models jest generowany automatycznie na podstawie naszej specyfikacji interfejsu OpenAPI. Nie modyfikuj go bezpośrednio".
Zapytaj, dlaczego
Agent może wyjaśnić jego rozumowanie. Jeśli decyzja nie wygląda prawidłowo, zapytaj:
- "Dlaczego wybrano kolejność od dołu?"
- "Dlaczego uaktualniasz ten pakiet do wersji X zamiast Y?"
- "Dlaczego podzieliłeś to na podzadania?"
Zrozumienie rozumowania pomaga przekazać lepszą opinię.
Wczesne zapisywanie preferencji
Jeśli masz silne preferencje dotyczące stylu kodowania, wzorców lub podejść, dodaj je do scenario-instructions.md w pierwszej sesji. Ten plik jest utrwalany między sesjami i zawsze znajduje się w kontekście agenta, co czyni go najbardziej niezawodnym sposobem wpływania na zachowanie.
Odzyskiwanie po problemach
Użyj tych strategii, gdy uaktualnienie nie przebiega zgodnie z oczekiwaniami.
Błędy kompilacji po zadaniu
Powiedz agentowi: "Kompilacja kończy się niepowodzeniem po ostatnim zadaniu". Agent analizuje błąd i próbuje go naprawić. Jeśli agent nie może rozwiązać problemu:
- Podaj poprawkę ręczną i poinformuj agenta o tym, co zrobiłeś. Agent uczy się z twojej poprawki.
- Przywróć zatwierdzenie (
git revertlub przywróć poprzednie zatwierdzenie) i poproś agenta o wypróbowanie innego podejścia. - Pomiń problematyczne zadanie i wróć do niego później.
Wybrana niewłaściwa strategia
Jeśli ogólne podejście agenta nie działa dla bazy kodu, uruchom ponownie etap planowania:
- "Wykonajmy ponownie plan. Chcę najpierw uaktualnić projekty internetowe, zamiast stosować podejście oddolne.
- "Zmień strategię, aby uaktualnić wszystkie biblioteki udostępnione w jednej operacji".
Agent zablokowany w pętli
Jeśli agent powtarza tę samą poprawkę bez postępu, powiedz "Zatrzymaj" i opisz, co obserwujesz, lub ręcznie zatrzymaj sesję. Agent może zresetować swoje podejście i spróbować coś innego.
Cofnij wszystkie zmiany
Jeśli do uaktualnienia użyto gałęzi Git, cofnij wszystko, przełączając się z powrotem do oryginalnej gałęzi:
git checkout your-original-branch
git branch -D upgrade-branch
Oryginalny kod pozostaje nietknięty. Jeśli pracujesz bez kontroli źródła, przywróć kopię zapasową utworzoną przed rozpoczęciem.
Bezpieczeństwo i prywatność
Fragmenty kodu : GitHub Copilot przetwarza je zgodnie z zasadami ochrony prywatności GitHub Copiloti nie zachowuje ich poza bieżącą sesją. -
Pliki przepływu pracy (
scenario-instructions.mdniestandardowe zadania, preferencje) pozostają w repozytorium w obszarze.github/upgrades/. GitHub nie przesyła tych plików do usług zewnętrznych. -
Folder
.github/upgrades/jest częścią repozytorium. Zatwierdź folder, ponieważ zawiera informacje o postępie i stanie aktualizacji. Aby wznowić pracę między sesjami, agent potrzebuje folderu. Można go usunąć po zakończeniu uaktualniania. - Telemetria: wyłącz za pomocą ustawień telemetrii środowiska IDE.
Porady dotyczące wydajności
- Zamknij niepotrzebne pliki i karty: agent analizuje aktywny obszar roboczy, a mniej otwartych plików oznacza mniej szumu.
- Uaktualnianie w etapach dla bardzo dużych rozwiązań: Zamiast uaktualniać wszystkie projekty naraz, należy je grupować. Na przykład najpierw uaktualnij wszystkie biblioteki, a następnie wszystkie projekty internetowe, a następnie testy.
- Użyj buforowania kompilacji: agent uruchamia wiele przyrostowych procesów kompilacji podczas weryfikacji. Rozgrzane pamięci podręczne kompilacji znacznie przyspieszają walidację. Unikaj czyszczenia danych wyjściowych kompilacji między zadaniami.