Sobes.tech
Junior

Jak rozwiązujesz konflikty w Git?

sobes.tech AI

Odpowiedź od AI

Podczas wykonywania pull lub rebase dochodzi do scalania zmian. Jeśli Git nie może automatycznie rozwiązać konfliktujących linii w plikach, oznacza je specjalnymi markerami:

<<<<<<< HEAD
linia z bieżącej gałęzi
=======
linia z gałęzi, którą scalamy
>>>>>>> feature/nowa-funkcjonalność

Aby rozwiązać konflikt:

  1. Otwórz plik z konfliktem w edytorze.

  2. Ręcznie edytuj plik, wybierając potrzebne części z obu wersji lub tworząc nową kombinację.

  3. Usuń markery <<<<<<<, =======, >>>>>>>.

  4. Zapisz plik.

  5. Dodaj rozwiązany plik do indeksu za pomocą git add:

    # Dodaj konkretny plik
    git add ścieżka/do/rozwiązany/plik.txt
    
    # Dodaj wszystkie rozwiązane pliki
    git add .
    
  6. Wykonaj commit, aby zakończyć scalanie:

    # Podczas scalania
    git commit -m "Rozwiązano konflikt scalania"
    
    # Podczas rebase
    git rebase --continue
    

Jeśli konfliktów jest dużo lub są skomplikowane, można użyć narzędzi do scalania:

git mergetool

Otworzy to graficzne narzędzie pomagające krok po kroku przejść przez konflikty.

W przypadku trudności podczas rebase, można użyć:

  • git rebase --abort: Anulować rebase i wrócić do stanu sprzed.
  • git rebase --skip: Pominąć bieżący commit z konfliktem (może być niebezpieczne).

Ważne jest, aby po rozwiązaniu konfliktów przetestować zmiany, aby upewnić się, że kod działa poprawnie.