Rozwiązywanie konfliktów
Konflikt występuje, gdy zmiany są wprowadzane do tego samego elementu zarówno w obszarze roboczym, jak i w zdalnym repozytorium Git. W przypadku wystąpienia konfliktu stan usługi Git oznacza, że konflikt i zatwierdzenie jest wyłączone.
Po wybraniu pozycji Aktualizuj w przypadku konfliktów zostanie wyświetlony komunikat z powiadomieniem o konieczności rozwiązania konfliktów, zanim będzie można je zaktualizować.
Istnieją trzy sposoby rozwiązywania konfliktu:
- Wybierz wersję, która ma być przechowywana w interfejsie użytkownika.
- Przywróć obszar roboczy lub repozytorium Git do poprzedniego stanu synchronizacji.
- Rozwiąż konflikt w usłudze Git.
Rozwiązywanie konfliktów w interfejsie użytkownika
Wybierz pozycję Aktualizuj wszystko , aby wyświetlić listę wszystkich elementów, które mają konflikty. Następnie możesz wybrać wersję, która ma być zachowana dla każdego elementu. Dla każdego elementu powodującego konflikt można zaakceptować zmiany przychodzące z repozytorium Git lub zachować bieżącą wersję w obszarze roboczym.
Wybierz pozycję Zaakceptuj zmiany przychodzące, aby zastąpić zmiany w obszarze roboczym. Zmiany obszaru roboczego zostaną utracone, a stan usługi Git zmieni się na zsynchronizowany , jeśli importowanie zakończy się pomyślnie.
Wybierz pozycję Zachowaj bieżącą zawartość , aby zachować wersję aktualnie w obszarze roboczym. Po zakończeniu aktualizacji stan usługi Git staje się niezatwierdzonymi zmianami , ponieważ zmiany w obszarze roboczym nie są jeszcze zatwierdzane w gałęzi.
Przywróć poprzedni stan
Możesz przywrócić cały obszar roboczy lub gałąź Git do stanu ostatniej synchronizacji. Jeśli przywrócisz gałąź Git do poprzedniego zatwierdzenia, nadal możesz zobaczyć zmiany wprowadzone w niezsynchronowanej gałęzi. Jeśli przywrócisz obszar roboczy, utracisz wszystkie zmiany wprowadzone w obszarze roboczym od czasu ostatniego zatwierdzenia.
Aby przywrócić poprzedni stan synchronizacji, wykonaj jedną z następujących akcji:
- Użyj polecenia Cofnij, aby zwrócić elementy powodujące konflikt w obszarze roboczym do stanu ostatniej synchronizacji.
- Przywróć ostatni stan synchronizacji w usłudze Git przy użyciu
git revert
polecenia w usłudze Azure DevOps.
Możesz również rozwiązać konflikty, rozłączając i ponownie łącząc obszar roboczy. Po ponownym połączeniu wybierz kierunek synchronizacji. Należy jednak pamiętać, że podczas ponownego nawiązywania połączenia zastępuje wszystkie elementy w obszarze roboczym lub gałęzi, a nie tylko konflikty. Nie zwraca obszaru roboczego ani gałęzi do ostatniego stanu synchronizacji. Zamiast tego zastępuje całą zawartość w jednej lokalizacji zawartością drugiej.
Rozwiązywanie konfliktów w usłudze Git
Jeśli nie masz pewności, jakie zmiany zostały wprowadzone i która wersja ma zostać wybrana i nie chcesz przywracać poprzedniego stanu, możesz spróbować rozwiązać konflikt w repozytorium Git, tworząc nową gałąź, rozwiązując konflikt w tej gałęzi i synchronizując go z bieżącym.
Uwaga
Tylko administrator obszaru roboczego może ponownie połączyć obszar roboczy z nową gałęzią.
W panelu sterowania Źródło wyewidencjonuj nową gałąź przy użyciu ostatniego zsynchronizowanego identyfikatora gałęzi widocznego u dołu ekranu
Ten krok tworzy nową gałąź z gałęzi powodującej konflikt przy użyciu ostatniego zsynchronizowanego stanu usługi Git, zanim zmiany zostaną wprowadzone, które powodują konflikt ze zmianami. Zmiany można zobaczyć w panelu sterowania Źródło, ale nie ma nic do zaktualizowania z gałęzi Git. Gałąź wyewidencjonowania zachowuje bieżący stan obszaru roboczego, więc niezatwierdzone zmiany są zachowywane podczas zmieniania gałęzi.
Zatwierdź zmiany w nowej gałęzi. Ta nowa gałąź zawiera teraz zmiany wprowadzone w elementach połączonych z starszą wersją gałęzi Git, które nie powodują konfliktu ze zmianami.
W usłudze git rozwiąż konflikty między gałęzią oryginalną a nową gałęzią.
W usłudze git scal nową gałąź z oryginalną gałęzią
W obszarze Sieć szkieletowa przełącz obszar roboczy z powrotem do oryginalnej gałęzi.