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.

questionAnswers(5)

yourAnswerToTheQuestion