Łatwa zdolność scalania GIT jest jedną z jego mocnych stron. Podczas scalania Git używa szybkiego scalania do przodu, gdy zauważa, że głowa obecnej gałęzi jest przodkiem zatwierdzenia, które próbujesz połączyć. W szybkim połączeniu nie ma nowego zatwierdzenia. Git po prostu przesuwa wskaźnik. Jeśli takie zachowanie nie jest pożądane, możesz użyć flagi No-F, aby stworzyć nowe zatwierdzenie scalania.
Jak wygląda scalanie z szybkim do przodu i bez
Po szybkiej formie historia Git będzie wyglądać tak:
C0 -> c1 -> c2-> c3
Dla tej samej liczby zatwierdzeń tutaj jest historia scalania bez szybkiego do przodu:
W pierwszym przypadku nic nie wskazuje na to, że było żadne rozgałęzienie. W drugim przypadku historia pokazuje zobowiązanie C4, aby wskazać, gdzie nastąpiło scalanie.
Przechodzenie przez przykład
Utworzysz repozytorium git, utworzysz gałąź, a następnie spróbujesz scals z szybkim naprzódm.
Najpierw możesz utworzyć repozytorium GIT z następującymi krokami:
$ mkdir my_projectTeraz utwórzmy gałąź o nazwie Funkcje i poprowadź kilka zmian:
Funkcje oddziału $ gitWróćmy do Master Branch i scalmy funkcje w nim:
$ git kectout Master
$ git scal funkcje
Wyjście:
Aktualizacja 08076FB… 9EE88EBJeśli sprawdzisz historię, zobaczysz:
$ git log -liniaTak więc wszystkie zobowiązania z oddziału funkcji znajdują się teraz w gałęzi głównej. Jeśli nadal wprowadzasz zmiany w Master, nie ma sposobu, aby wiedzieć, kiedy oddział funkcji został w nim połączony.
Powtórz sekcję 1 dla nowego folderu.
Następnie wypróbuj scalanie bez szybkiego do przodu:
$ git kectout Master
$ git merge-no-f funkcja
Otworzy się następujące w domyślnym edytorze tekstu GIT:
Scalaj „funkcje”
# Wprowadź wiadomość o zatwierdzeniu, aby wyjaśnić, dlaczego to scalanie jest konieczne,
# Zwłaszcza jeśli łączy zaktualizowany Upstream w oddział tematyczny.
#
# Wiersze zaczynające się na „#” zostaną zignorowane, a puste wiadomość przerywa
# zatwierdzenie.
Zmodyfikuj komentarze. W takim przypadku możesz po prostu dodać „C4:” przed „funkcjami„ scalał gałąź ””. Wyjście powinno wyglądać tak:
Scalone przez strategię „rekurencyjną”.Teraz, jeśli sprawdzisz historię, powinno to wyglądać jak następujące:
$ git log -liniaWidać, że nawet jeśli masz dokładnie takie same zmiany, ta wersja scerge ma dodatkowe zatwierdzenie C4, co oznacza scalanie gałęzi funkcji w Master.
Wniosek
Flaga Git Scal No-F. pomaga stworzyć bardziej czytelną historię. Pozwala umieszczać tagi, które wyraźnie pokazują, gdzie miały miejsce scalone. Może zaoszczędzić czas i wysiłek podczas debugowania.