Git merge vs. rebase (i jak robić to dobrze)

preview_player
Показать описание
Pracując z Gitem, dobrze jest zdecydować się na jeden z dwóch głównych workflowów, czyli merge lub rebase.

W tym filmie opowiadam o różnicach pomiędzy nimi, mówię o tym dlaczego w swoich projektach używam rebase'a i pokazuję jak robić to dobrze.
Рекомендации по теме
Комментарии
Автор

Super, tak samo jak "Git i GitHub w 60 minut". Oglądnąłem oba filmy, super wyjaśnione.

radosawberlinski
Автор

Fajny filmik, ale nie do końca zgadzam się z takim modelem pracy z następujących powodów:
- podczas developmentu cały czas trzeba rozpraszać się rebase'ami i rozwiązywaniem w tym czasie ewentualnych konfliktów; bez tego konflikty rozwiązujemy tylko raz na końcu
- w podanym przykładzie pominąłeś merge commit; spotkałem się z sytuacjami, że z różnych powodów trzeba wycofać feature przed releasem i najłatwiej to zrobić revertując merge commit całego feature brancha; w przypadku takiego modelu pracy nie jest to możliwe
- commity robione na feature branchu są commitami "pomocniczymi" podczas rozwijania danego featura (np. poprawki po code review itp.) i zaburzają historię projektu; lepiej przed pushem lub mergem do mastera zesquashować wszystkie commity z feature brancha do jednego - mamy wtedy czystą historię bez commitów "pomocniczych"
- jeżeli następuje sytuacja, o której wspomniałeś, tzn. jest ogromny rozjazd pomiędzy feature branchem a masterem, nad którym nie da się zapanować to znaczy, że praca w zespole jest źle zorganizowana i ludzie grzebią w tym samym czasie w tych samych plikach lub metodach; konflikty powinny być rozwiązywalne i zdarzać się rzadko; takie kwestie powinny być rozwiązywane na etapie "ludzkim", a nie z poziomu gita

Poza tym, spoko.

Pozdrawiam :-)

pwittchen
Автор

Dla mnie mistrzowskie tłumaczenie :) Dzięki!

michadobrowolski
Автор

Bardzo dobrze tłumaczone, czekam na kolejne części z gita.

Kamil
Автор

Dziękuję bardzo za filmik, musiałem obejrzeć 2 razy, żeby zrozumieć różnicę pomiędzy merge/rebase i teraz wszystko jest dla mnie jasne! ♥

MrFaciio
Автор

Stare are jare - świetny materiał również w 2022!

krzysztofs
Автор

Bardzo przejrzyście wytłumaczone. Taki live-coding z przykładami na końcu uważam za bardzo skuteczną formę nauki - pokazuje, że nawet najlepsi nie zawsze piszą wszystko od razu poprawnie i nie ma co się obawiać próbować nowych rzeczy! Ciekawy komentarz @Piotra Wiitchen'a, jednak chyba spróbuję zastosować się do Twojej praktyki :)

jakubunold
Автор

dziękuje ci za te filmy są super. Tak dalej !

marcelsztur
Автор

Zamiast przełączać się cały czas pomiędzy branchami/masterem wystarczy na swoim feature_branch'u użyć "git pull origin master" i wszystkie zmiany z mastera-servera są w naszym branch'u. Co do rebase'a, to można i tak do tego podchodzić. Kwestia gustu.

chibithescorp
Автор

No ale dobra, mam dwa commity z innego brancha na masterze i co, jak je teraz wsadzić na ich miejsce, bo są na samej górze a ich zawartość jest starsza niż z najnowszego commita na masterze, powinniśmy chyba jakoś dwa commity z feature cofnąć do commit 1 i commit 2?

qcvugic
Автор

Dzięki za film. Przekaż bardzo zrozumiały :)

Igoand
Автор

Fajnie wytlumaczone. Nie wiem jak winnych edytorach ale ja u siebie w Webstormie nie musze checkout robic do mastera by zrobic pull moge to wyklikac ale monza rowniez zamiast git checkout master zrobic git rebase orgin/master

KondzioTVstudio
Автор

Jestem na feature branchu, robie git rebase main --> wystepuja konflikty ktore naprawiam. Po "naprawie" trzeba zrobic commit (message np. "Fix merge conflicts" lub "Merge main") z naprawionymi konfliktami?

deathlotos
Автор

Czy brancz to linia czasu a commity to poszczegulne abdejty?
dobże zrozumiałem?

krlo
Автор

Dzięki. Miałem takie pytanie na rozmowie kwalifikacyjnej na juniora. Gdybym widział ten filmik troszkę wcześniej.

gosuroger
Автор

Witam. Próbuje nauczyć się obsługi gita /githuba i niejasna jest dla mnie do końca jedna kwestia. Proszę poprawić, jeśli źle zrozumiałem. Załóżmy, że sprawdziłem nowe zmiany na masterze i wróciłem już na swojego brancha. Jeżeli wpiszę na nim rebase master to kopiuję zmiany z mastera na swojego brancha czy też nie kopiuję ale mój branch staje się masterem i psuję wtedy robotę innym? Czy jest to możliwe?

replay_pete
Автор

Czy w 9:30 zamiast checkout'owac na mastera i zaciągać pullem zmiany i później znowu przechodzić na naszego brancha i wpisywać 'git rebase master' moglibyśmy na naszym branchu wpisać po prostu 'git pull --rebase'? Wyszłoby na to samo?

marekt
Автор

dlaczego zrobiłeś w branchu feature rebase a pozniej jeszcze na masterze merge ? nie mozna by zrobic od razu na masterze rebase?

krzysztofjedraszak
Автор

są tez minusy rebase na publicznym repo

maciej
Автор

A czy mógłbyś omówić usuwanie i zamianę kolejności commitow po poleceniu git rebase - i HEAD?

KS