Jak mogę korzystać z git rebase bez konieczności wymuszonego wypychania?
Próbując osiągnąć git nirvana, spędzam dzień ucząc się, jak wykorzystać rebase w sytuacjach, w których obecnie się łączę.
Podczas uruchamiania tego, co uważam za przepływ git 101 (który opisuję poniżej), muszępush --force
kiedy pcham moje zmiany z powrotem do początku.
Nie jestem jedyny - wiem, że to jest pokryte ziemią (patrz1,2,3,4,5) i rozumiem przyczyny techniczneczemu potrzebna jest siła. Mój problem polega na tym, że istnieje wiele (wiele) wpisów na blogu, w których można pochwalić się rebase i jak to zmieniło ich życie (patrz1,2,3,4 wymienić kilka), ale żaden z nich nie wspomina o tympush --force
jest częścią ich przepływu. Jednak prawie każda odpowiedź na istniejące pytania związane z przepływem stosu mówi coś w stylu „tak, jeśli zamierzasz ponownie bazować, musisz użyćpush --force
„
Biorąc pod uwagę liczbę i religijność zwolenników rebase,Muszę wierzyć, że użycie „push -force” nie jest nieodłączną częścią przepływu baz i że jeśli ktoś często zmusza swoje popychanie, robi coś złego.
push --force
jestzła rzecz.
Oto mój przepływ.W jaki sposób mogę osiągnąć te same wyniki bez użycia siły?
Prosty przykład
Dwie gałęzie:
v1.0 - gałąź wydania, zawiera tylko poprawkimistrz - wszystko na następne duże wydanie.Mam kilka poprawek i kilka zatwierdzeń dla następnej wersji.
Chciałbym włączyć łatki do mojego mistrza, aby nie zostały utracone na następne wydanie. Przed oświeceniem po prostu:
git checkout master
git merge v1.0
Ale teraz próbuję
git checkout master
git rebase v1.0
Więc teraz jestem:
Czas na:
git push
Nie ma kości.