0Pricing
Git & GitHub Professional Workflow · Lekcja

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 status

Odczytywanie 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
>>>>>>> feature

Rę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.txt

Koń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 status pokazuje 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

  1. Ręczne rozwiązywanie konfliktów scalania
  2. Interaktywny rebase historii
  3. Wybieranie commitów za pomocą cherry-pick
  4. Ponowne wykorzystywanie rozwiązań konfliktów za pomocą Git Rerere
← Powrót do Git & GitHub Professional Workflow