Git – merge vs. rebase

Dziś przedstawię różnicę pomiędzy merge a rebase.

Obie komendy służą do rozwiązania tego samego problemu. Do włączenia zmian z jednego branch’a do innego branch’a. Innymi słowy służą do synchronizacji duch gałęzi np lokalnej i zdalnej. Robią to jednak na rożne sposoby. Ale zacznijmy od początku.

Zakładając gałąź główną “master” tworzymy z niego branch’a pobocznego na którym będziemy pracować i wykonywać zmiany nie zmieniając postaci “master’a”. W czasie naszej pracy inny członek zespołu wysłał zmiany na repozytorium i dokonał aktualizacji “master’a”. Proszę spójrz na poniższy rysunek który przedstawia tą sytuacje.

Dodatkowo te zmiany są nam potrzebne w naszej pracy więc aby móc dalej pracować na aktualnym projekcie potrzebujemy zaktualizować naszą gałąź np o nazwie “feature” o zmiany z “master”. Jednym ze sposobów jest “merge”. Wówczas aby wykonać taką komendą należy napisać:

git checkout feature 
git merge master
lub:
git merge master feature 

Komendy te tworzą dodatkowy “merge commit” który łączy historie obiu gałęzi. Graficznie całą operacje można przedstawić w poniższy sposób.

Merge request

Zaletą komendy “merge” jest to że jest to operacja która nie ingeruje w historie zmian w żadnej gałęzi i ja zachowuje. Wadą natomiast to że razem z wykonaniem “merg’a” pobieramy całą historie commitów które nie są związane bezpośrednio z naszą praca na naszej gałęzi.

Bądź pierwszy, który skomentuje ten wpis!

Dodaj komentarz

Twój adres email nie zostanie opublikowany.


*