3 sposoby na git merge

W różny sposób pracujemy z gitem i scalamy branche. Już niedługo pojawi się e-book o git flow, który Ci obiecałam. Jednak aby pracować z git flow, trzeba znać podstawowe operacje. O naprawdę bazowych operacjach pisałam już wcześniej we wpisie o podstawach gita. Jeśli nie czytałeś, zajrzyj najpierw do poprzedniego postu, a następnie wróć tutaj. Wtedy lepiej zrozumiesz informacje zawarte w tym tekście, który zagłębia się w szczegóły git merge.

Jednym z nich jest właśnie świadome scalanie branchy. Używamy do tego git merge albo git rebase. Każda z tych opcji ma swoje plusy i minusy. Na rebase skupię się kiedy indziej. Dzisiaj chciałabym przybliżyć Ci git merge i tryby, które definiują, jak będzie wyglądać historia zmian. 

GIT MERGE

To funkcja używana do scalania dwóch lub więcej branchy. Kiedy pracujesz na branchu zadaniowym a develop cały czas jest rozwijany przez innych członków zespołu przyjdzie moment, gdy trzeba je ze sobą połączyć. Wystawiasz PR swojego branch do developa. Jeśli pracowaliście w innych obszarach aplikacji, nie powinny wystąpić żadne problemy. Jednak w sytuacji, gdy wasze zmiany się ze sobą konfliktują, trzeba to jakoś rozwiązać.

Aby to zrobić, należy wejść na swój branch, zrobić git pull, konflikty, które wykazał PR pojawią Ci się właśnie przy pullu, możesz je wtedy spokojnie rozwiązać, wypchnąć na swój branch z PRa zniknął problemy.

Fast-Forward –ff

Jest defautowym trybem merga. Czysta komenda git merge zachowa się dokładnie tak samo, jak git merge –ff. Jeśli nie wystąpią żadne konflikty branche zostaną „gładko” scalone, czyli bez dodatkowego commit merga. Head/ wskaźnik przesunie się po prostu na ostatni po węzeł scaleniu.

No Fast-Forward –no-ff

Ten tryb sprawi, że nawet jeśli nie ma konfliktów i bez problemu można byłoby wykonać fast-forward to mimo to tworzony jest dodatkowy merge commit.  W historii zmian pojawi się za każdym razem dodatkowy węzeł.

Fast-Forward Only –ff-only

Jak nazwa wskazuje ten typ przy uruchomieniu, będzie próbował wykonać Fast forward. Jeśli mu się nie uda, zakończy się bez scalenia, czyli niezerowym statusem. W przypadku klasycznego FF wykonałby się merge commit po rozwiązaniu konfliktów. Tutaj zakończy się to po prostu błędem.

Miałeś kiedyś problemy przy scalaniu branch? Jeśli tak, to jakie i jak je rozwiązałeś? 

Podobne posty

Jestem programistką, która lubi mieć ręce pełne roboty. Do życia potrzebuje komputera z internetem i kubka gorącej kawy. Więcej na stronie o mnie.

Comments

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here