Logo David Burdelak
Słownik · Web development

Co to jest merge w Git?

Ostatnia aktualizacja:

Merge w Git to operacja łączenia zmian z jednej gałęzi z drugą, najczęściej włączania gotowej funkcji do gałęzi głównej. Git porównuje obie linie historii, wyszukuje wspólnego przodka i łączy różnice, a gdy zmiany dotyczą tych samych linii, zgłasza konflikt do ręcznego rozwiązania.

Rodzaje scalania

Gdy gałąź główna nie zmieniła się od rozgałęzienia, Git może wykonać szybkie przewinięcie (fast-forward), przesuwając tylko wskaźnik. W przeciwnym razie tworzy specjalny commit scalający z dwoma rodzicami. Alternatywą jest git rebase, które przenosi commity na nowy punkt startowy i daje liniową historię, ale przepisuje ją, więc nie stosuje się go do gałęzi współdzielonych.

Rozwiązywanie konfliktów

Konflikt oznacza, że obie gałęzie zmieniły ten sam fragment pliku. Git oznacza go znacznikami <<<<<<<, ======= i >>>>>>>. Należy wybrać prawidłową wersję, usunąć znaczniki, dodać plik do poczekalni i dokończyć scalanie commitem.

Jak ograniczyć konflikty?

Pomagają krótko żyjące gałęzie, częste pobieranie zmian z gałęzi głównej i podział pracy tak, by osoby nie edytowały tych samych fragmentów. Dobrze działają też automatyczne testy uruchamiane przed scaleniem.

Zobacz w praktyce

Powiązane pojęcia

Wszystkie hasła z kategorii Web development