Jak rozwiązywać konfilkty przy pomocy GitExtensions?
Czy kiedykolwiek zastanawiałeś się, jak łatwo połączyć swoje zmiany bez niszczenia całego projektu? Oto szybki i prosty przewodnik. Zaczynamy! Po pierwsze, powinieneś zainstalować i skonfigurować GitExtensions. Następnie otwórz swoje repozytorium. W moim przypadku zawiera ono dwie gałęzie: master i develop. Sprawdź obraz poniżej, aby to zobaczyć.
Zawiera plik hello.html z tym samym edytowanym wierszem, więc nie wie, który wiersz powinien być użyty, gdy conflict wystąpi.
Jak zmienić baze?
Aby przebazować z gałęzi develop na gałąź master, aby zatwierdzenie na gałęzi develop było “nad” zatwierdzeniami z gałęzi master i tak aby zawierał wszystkie zatwierdzenia z gałęzi master także. Jak to zrobić? Przełącz się na gałąź develop. Kliknij prawym przyciskiem myszy na niej. Wybierz opcję przełączenia gałęzi, a następnie wybierz gałąź develop.
Kiedy jesteś na gałęzi develop, wybierz, dla którego zatwierdzenia chcesz zmienić bazę. W moim przypadku jest to zatwierdzenie z gałęzi master o wiadomości “Hope it will work”.
Po kliknięciu “yes”, aby zmienić bazę, powinieneś zobaczyć komunikat o błędzie, ale nie martw się, nie ma w tym nic złego z git. To tylko informacja dla Ciebie, że musisz rozwiązać kilka konfliktów.
Następnie kliknij OK i kontynuuj. Następnie powinieneś zobaczyć podobne okno poniżej:
Wybierz rozwiązanie konfliktów, a następnie powinno pojawić się kolejne okno.
To okno jest oknem rozwiązywania konfliktów scalania. Możesz rozwiązać konflikty scalania na dwa sposoby. Szybki i łatwy drugi sposób, dla którego używasz narzędzia do porównywania różnic, jak kdiff3.
Szybki i łatwy sposób rozwiązania konfliktów scalania.
Możesz zastosować zmiany dla pliku hello.html, odrzucając swoje zmiany i korzystając z zmian z gałęzi master. Kliknij prawym przyciskiem myszy na pliku hello.html i wybierz (theirs), jak na obrazie poniżej:
Jeśli chcesz nadpisać zmiany, zawsze możesz użyć opcji (ours). Następnie kliknij kontynuuj przebazowanie w głównym oknie przebazowania.
W przypadku większej liczby plików lub konfliktów, będziesz musiał je rozwiązać później. Pamiętaj, że praca z większymi plikami lub zmianami może zająć trochę czasu.
Praca z narzędziem do porównywania różnic
Tutaj zmodyfikowałem trochę historię repozytorium, więc możemy z tym pracować
Przebazuj ponownie i rozwijaj na gałąź master.
-
Przełącz się na gałąź develop
-
Wybierz pierwszy commit z gałęzi master z wiadomością “Some other changes” i kliknij prawym przyciskiem myszy na nim
-
Przebazuj bieżącą gałąź na -> wybrany commit.
Następnie zaczyna się magia. Pomijam kroki do okna konfliktów scalania, które są takie same jak powyżej. Wybierz otwórz je w kdiff3 lub innym narzędziu do scalania/porównywania.
Powinieneś zobaczyć okno podobne do poniższego:
Następnie występują trzy katalogi scalania:
-
(“A” jest traktowane jako starsza baza obu).
-
B - jest (ich) wersją gałęzi master
-
C - jest (nasze) w tym przypadku wersją gałęzi develop
Poniżej znajduje się okno wyjścia, które zawiera wynik scalania.
Możesz wybrać wersję pliku, którą chcesz zostawić i połączyć je. Możesz zobaczyć, że wybrałem jedną linię z C, jedną linię z A i jedną linię z B. Następnie zapisałem plik i kontynuowałem przebazowanie po rozwiązaniu konfliktów. To proste, ale czasami sytuacja może się skomplikować, więc uważaj.
Poniżej widoczny jest wynik zmiany bazy:
Stworzy to rozszerzenia plików .orig, więc zawsze możesz zobaczyć historię swoich zmian.
Lepiej nie commitować tych plików do repozytorium.
To wszystko! Mam nadzieję, że artykuł pomoże Ci w rozwiązywaniu konfliktów!
Podoba Ci się ten artykuł?
Oto kilka następnych artykułów, które mogą Ci się również spodobać: