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.

  1. Przełącz się na gałąź develop

  2. Wybierz pierwszy commit z gałęzi master z wiadomością “Some other changes” i kliknij prawym przyciskiem myszy na nim

  3. 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ć:

  • How to solve rebase and merge conflicts with GitExtensions?
  • How to start with GIT?
  • How to store big binary files with git lfs on Google Drive or One Drive?
  • Developing programming skills with making games