Ręczne rozwiązywanie konfliktów scalania
Naucz się ręcznie identyfikować i rozwiązywać konflikty scalania powstające podczas integrowania rozbieżnych gałęzi.
Ręczne rozwiązywanie konfliktów scalania to bezpłatna lekcja Git & GitHub Professional Workflow na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Git & GitHub Professional Workflow, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Git & GitHub Professional Workflow zawiera 4 lekcji w sumie.
Zrozumienie konfliktów scalania
Witamy w świecie konfliktów scalania! Proszę się nie martwić — są one normalną częścią współpracy z użyciem Gita. Konflikt scalania występuje, gdy Git nie potrafi automatycznie ustalić, jak połączyć zmiany z dwóch różnych gałęzi.
Zwykle dochodzi do tego, gdy dwie gałęzie modyfikują te same wiersze w tym samym pliku na różne sposoby albo gdy jedna gałąź usuwa plik zmodyfikowany przez inną gałąź.
Dlaczego powstają konflikty
Git doskonale radzi sobie z automatycznym scalaniem większości zmian. Gdy napotyka niejednoznaczność, potrzebuje jednak pomocy człowieka. Oto typowe sytuacje:
- Ten sam wiersz, różne zmiany: Dwie osoby w różny sposób edytują dokładnie ten sam wiersz kodu.
- Jedna osoba usuwa, druga modyfikuje: Jedna gałąź usuwa plik, a inna go modyfikuje.
- Zmiana nazwy a modyfikacja: W jednej gałęzi zmieniono nazwę pliku, a w innej go zmodyfikowano.
Wykrywanie konfliktów za pomocą Gita
Gdy wystąpi konflikt scalania, Git nie zakończy scalania automatycznie. Zamiast tego wstrzyma proces i poinformuje, w których plikach występują konflikty. Zobaczy Pan komunikat podobny do tego:
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.Używanie `git status` w przypadku konfliktów
Po nieudanym scalaniu automatycznym repozytorium znajdzie się w stanie „scalania”. Za pomocą git status można sprawdzić, w których plikach występują konflikty. Pliki te zostaną wyświetlone jako „unmerged paths”.
git statusOdczytywanie znaczników konfliktu
Git wstawia specjalne znaczniki bezpośrednio do plików zawierających konflikty, aby wskazać miejsce problemu. Znaczniki te pomagają zidentyfikować różne wersje kodu:
<<<<<<< HEAD: Oznacza początek zmian z bieżącej gałęzi.=======: Oddziela zmiany z obu gałęzi.>>>>>>> branch-name: Oznacza koniec zmian z przychodzącej gałęzi.
Wewnątrz pliku zawierającego konflikt
Przyjrzyjmy się przykładowi. Załóżmy, że ma Pan plik hello.txt. W gałęzi main zmieniono jego zawartość na „Hello from main”, a w gałęzi feature ten sam wiersz zmieniono na „Greetings from feature”. Podczas scalania feature z main plik będzie wyglądać tak:
<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> featureRęczne rozwiązywanie konfliktu
Należy otworzyć plik zawierający konflikt (na przykład hello.txt) w edytorze tekstu. Następnie trzeba ręcznie edytować plik, usunąć znaczniki konfliktu i wybrać żądaną zawartość. Można połączyć fragmenty, wybrać jedną z wersji albo napisać coś zupełnie nowego.
W przypadku naszego przykładu z plikiem hello.txt, jeśli chcemy zachować oba komunikaty, możemy zmienić go tak:
Hello from main and Greetings from feature!Dodawanie rozwiązanych zmian do obszaru staging
Po ręcznej edycji pliku i usunięciu wszystkich znaczników konfliktu należy poinformować Gita, że konflikt został rozwiązany. W tym celu trzeba dodać plik do obszaru staging za pomocą git add.
Należy powtórzyć tę czynność dla każdego pliku wymienionego przez git status jako „unmerged paths”.
git add hello.txtKończenie commita scalającego
Po dodaniu do obszaru staging wszystkich plików zawierających konflikty scalanie jest gotowe do zatwierdzenia. Git zazwyczaj wyświetli domyślny komunikat commita scalającego, który można zaakceptować lub zmodyfikować. Ten końcowy commit kończy proces scalania.
git commit -m "Merged feature branch, resolved conflict in hello.txt"Sprawdzenie rozwiązywania konfliktów
Konflikt scalania został pomyślnie rozwiązany. Sprawdźmy teraz, czy rozumie Pan kolejny ważny krok po ręcznej edycji pliku zawierającego konflikt.
Podsumowanie: ręczne rozwiązywanie konfliktów
Opanował(a) Pan/Pani ręczne rozwiązywanie konfliktów scalania! To podstawowa umiejętność każdego dewelopera.
- Konflikty występują, gdy Git nie może automatycznie scalić zmian.
git statuspokazuje niescalone pliki.- Znaczniki konfliktu (
<<<<<<<,=======,>>>>>>>) wskazują rozbieżny kod. - Należy ręcznie edytować pliki, usunąć znaczniki i wybrać ostateczną zawartość.
- Rozwiązane pliki należy dodać do obszaru przechowalni za pomocą
git add. - Scalanie należy zakończyć poleceniem
git commit.
Praktyka czyni mistrza! Na początku konflikty mogą wydawać się onieśmielające, ale dzięki tym krokom opanuje je Pan/Pani.
Często zadawane pytania
Czy lekcja „Ręczne rozwiązywanie konfliktów scalania” jest bezpłatna?
Tak — pełny tekst „Ręczne rozwiązywanie konfliktów scalania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Git & GitHub Professional Workflow, przejdź na CoddyKit PRO. Kurs Git & GitHub Professional Workflow zawiera 4 lekcji w sumie.
Co nauczysz się w „Ręczne rozwiązywanie konfliktów scalania”?
Naucz się ręcznie identyfikować i rozwiązywać konflikty scalania powstające podczas integrowania rozbieżnych gałęzi. Ćwiczysz Git & GitHub Professional Workflow z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Git & GitHub Professional Workflow?
Nie wymagamy żadnego doświadczenia. Git & GitHub Professional Workflow w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Ręczne rozwiązywanie konfliktów scalania”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Git & GitHub Professional Workflow?
Tak. Każda lekcja Git & GitHub Professional Workflow zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Ręczne rozwiązywanie konfliktów scalania
- Interaktywny rebase historii
- Wybieranie commitów za pomocą cherry-pick
- Ponowne wykorzystywanie rozwiązań konfliktów za pomocą Git Rerere