Scalanie trójstronne
Część sekcji Kontrola wersji ścieżki Terminal w Coddy. Lekcja 36 z 58.
Jeśli obie gałęzie rozwijały się niezależnie, Git nie może po prostu wykonać szybkiego przewinięcia. Zamiast tego przeprowadza scalanie trójstronne: sprawdza wspólnego przodka i końcówki obu gałęzi, a następnie tworzy nowy commit, który je łączy.
To nowe zatwierdzenie to zatwierdzenie scalające. Ma dwóch rodziców, po jednym z każdej gałęzi:
git switch main
git merge feature -m "Merge feature"Flaga -m bezpośrednio podaje treść komunikatu commita scalającego, dzięki czemu Git nie otwiera edytora.
W większości przypadków Git może automatycznie połączyć zmiany z obu gałęzi, o ile dotyczą różnych części plików. Konflikty występują tylko wtedy, gdy obie gałęzie zmieniły te same wiersze. Temu zagadnieniu poświęcona jest następna lekcja.
Wyzwanie
ŚredniZaczynasz w nowym folderze z plikiem top.txt (zawartość: a) i bottom.txt (zawartość: b).
Zainicjuj repozytorium, utwórz pierwszy commit, a następnie:
- Utwórz gałąź
featurei dopisz wierszaddeddo plikutop.txt; utwórz commit. - Przełącz się na
maini dopisz wierszaddeddo plikubottom.txt; utwórz commit. - Scal
featurezmain, używając komunikatuMerge feature.
Wyświetl liczbę commitów osiągalnych z HEAD, używając polecenia git rev-list --count HEAD. Oczekiwana liczba to 4 (początkowy + feature + main + scalający).
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Kontrola wersji
4Przeglądanie zmian
Git DiffRóżnice w zmianach w poczekalniGit ShowPodsumowanie – praca detektywistyczna2Pierwsze kroki
Inicjalizacja repozytoriumFolder .gitKonfiguracja tożsamościStatus GitPodsumowanie — pierwsze repozytorium5Ignorowanie plików
Dlaczego ignorować plikiWzorce GitignoreSprawdzanie reguł ignorowaniaPodsumowanie — czyste repozytorium8Scalanie
Czym jest scalanieScalanie typu fast-forwardScalanie trójstronneKonflikty scalaniaRozwiązywanie konfliktuPowtórka — mistrz scalania11Projekt z gałęzią funkcjonalności
Przegląd projektuZainicjuj gałąź main3Śledzenie zmian
Obszar przygotowaniaGit AddGit CommitModyfikowanie śledzonego plikuGit LogPodsumowanie — pierwsze commity6Projekt strony z przepisami
Omówienie projektuInicjalizacja i ignorowanie plikówPoćwicz samodzielnie: Edytor online Terminal