Git to świetne narzędzie do zarządzania wersjami kodu, ale przy pracy w większych zespołach często zdarza się, że podczas łączenia zmian dochodzi do konfliktów. Konflikty w Gicie oznaczają, że Git nie potrafi automatycznie połączyć dwóch wersji pliku i wymaga ręcznej interwencji. W tym artykule pokażemy, dlaczego powstają konflikty, jak je rozwiązywać i jak im zapobiegać.
Konflikt w Gicie występuje, gdy dwie różne gałęzie zawierają zmiany w tym samym pliku i w tym samym wierszu. Git nie może zdecydować, która wersja jest poprawna, i wymaga ręcznego rozwiązania.
Najczęstsze przyczyny konfliktów:
Jeśli spróbujesz połączyć gałąź za pomocą polecenia:
git merge feature-branch
Git może wyświetlić komunikat o błędzie:
CONFLICT (content): Merge conflict in plik.txt
To oznacza, że w pliku plik.txt
wystąpił konflikt.
Aby zobaczyć listę plików z konfliktami, użyj polecenia:
git status
Wynik może wyglądać tak:
both modified: plik.txt
W problematycznym pliku Git oznaczy konflikty w następujący sposób:
<<<<<<< HEAD To jest Twoja aktualna wersja kodu. ======= To jest wersja z feature-branch. >>>>>>> feature-branch
Twoim zadaniem jest wybrać poprawną wersję lub ręcznie je połączyć:
To jest poprawna wersja kodu po rozwiązaniu konfliktu.
Po rozwiązaniu konfliktów dodaj plik do Gita:
git add plik.txt
Następnie zakończ merge poleceniem:
git commit -m "Rozwiązanie konfliktu podczas merge"
Sprawdź status repozytorium:
git status
Jeśli Git nie zgłasza już żadnych konfliktów, merge zakończył się sukcesem.
Konflikty w Gicie są powszechne, ale można je zminimalizować:
git pull
.git diff
.Jeśli chcesz cofnąć rozwiązanie konfliktu i wrócić do poprzedniego stanu, użyj:
git merge --abort
git rebase main
Podczas rebase Git może poprosić o ręczne rozwiązanie konfliktów, podobnie jak przy merge.
W niektórych przypadkach możesz użyć:
git merge -X ours feature-branch
lub
git merge -X theirs feature-branch
Te polecenia wybiorą określoną wersję kodu bez ręcznej interwencji.
git stash
lub commit.Jeśli interesuje Cię szkolenie programistyczne stacjonarne lub online, sprawdź naszą ofertę na stronie www.like-it.sk. Nasze kursy prowadzone są przez doświadczonych ekspertów, którzy nauczą Cię programowania od podstaw po zaawansowane techniki.
Marián Knězek