Od jakiegoś czasu używam Git Extensions (jest niesamowity!), Ale nie znalazłem prostej odpowiedzi na następujące pytania:
Czasami podczas wpisywania komunikatu o zatwierdzeniu popełnia się literówkę. Mój przyjaciel pokazał mi, jak to naprawić w następujący sposób (w rozszerzeniach Git):
Kliknij prawym przyciskiem myszy zatwierdzenie> Zaawansowane> Zatwierdzenie poprawek
Następnie po prostu zaznaczam pole „Popraw”, przepisuję swoją wiadomość i voila! Moja wiadomość dotycząca zatwierdzenia została naprawiona.
Jednak ta inna opcja „Squash commit”… Zawsze się zastanawiałem, co to robi ?!
Moje pytanie brzmi:
Czy ktoś po prostu wyjaśniłby mi, jaka jest dokładna różnica między zatwierdzeniem Squasha a zatwierdzeniem poprawkowym w rozszerzeniach Git / Git ? Wyglądają trochę ... „podobnie” do mnie:
źródło
rebase
i squash / fixup w dokumentacji Git .Mówiąc najprościej, podczas zmiany bazy serii zatwierdzeń, każde zatwierdzenie oznaczone jako a
squash
, daje możliwość użycia jego wiadomości jako części komunikatupick
lubreword
zatwierdzenia.Kiedy używasz,
fixup
wiadomość z tego zatwierdzenia jest odrzucana.źródło
fixup
wtedy zachowana?Z dokumentu git-rebase, sekcja „tryb interaktywny” :
źródło
Jeśli pytanie brzmi, jaka jest różnica między
squash
ifixup
w git podczas wykonywania git rebase --interactive , to odpowiedzią jest komunikat o zatwierdzeniu .Na przykład:
Komunikat zatwierdzenia po zmianie bazy w przypadku 1 wyglądałby:
podczas gdy komunikat o zatwierdzeniu w przypadku 2 to:
źródło
Majstrowałem przy rozszerzeniach gita i nie mogłem zmusić go do zgniatania wielu zatwierdzeń w jedno. Aby to zrobić, musiałem skorzystać z wiersza poleceń i uznałem ten post za pomocny
To jest interaktywna rebase i zwróć uwagę na następujące kwestie:
źródło
Dlaczego nie zapytać samego gita? Kiedy rebase z
git-bash
, mówi:Więc widzisz:
źródło