Merge - squash

Squash jest przełącznikiem polecenia git merge, którego rezultatem nie jest połączenie dwóch gałęzi, a zamiast tego nałożenie na indeks zmian wynikających z różnicy między dwoma gałęziami. Proces łączenia jest na tym etapie zatrzymywany i naniesienie zmian należy już do użytkownika.

Opcja ta jest bardzo przydatna w dwóch przypadkach:

  • kiedy chcemy opublikować nasze zmiany lokalne związane z jakąś funkcjonalnością/naprawą błędu i nie chcemy "zaśmiecać" repozytorium zdalnego informacjami o każdej pojedynczej zmianie dokonanej w ramach naszej pracy
  • kiedy w procesie review programista musiał dokonywać wielu zmian (commitów) i nie chcemy zmuszać go do ponownej publikacji nowego, czystego brancha

Załóżmy, że mamy branch z pewnymi commitami:

Tworzymy nowy branch (develop) i dodajemy pewne commity:

Teraz dokonujemy połączenia dwóch gałęzi za pomocą przełącznika squash:

git checkout master
git merge develop --squash
git commit -m "Some commit message"

Wynikiem będzie następująca historia brancha master:

results matching ""

    No results matching ""