OK, ich dachte, dies sei ein einfaches Git-Szenario, was übersehe ich?
Ich habe eine master
Zweig und eine feature
Zweigstelle. Ich arbeite an master
, einige auf feature
und dann noch einige mehr auf master
. Das Ergebnis sieht etwa so aus (die lexikografische Reihenfolge impliziert die Reihenfolge der Übertragungen):
A--B--C------F--G (master)
\
D--E (feature)
Ich habe kein Problem damit git push origin master
um die Fernbedienung zu behalten master
aktualisiert, noch mit git push origin feature
(wenn auf feature
), um ein Remote-Backup für meine feature
Arbeit. Bis jetzt ist alles in Ordnung.
Aber jetzt möchte ich neu gründen feature
auf der Spitze des F--G
Übertragungen auf Master, also habe ich git checkout feature
y git rebase master
. Immer noch gut. Jetzt haben wir:
A--B--C------F--G (master)
\
D'--E' (feature)
Problem: in dem Moment, in dem ich ein Backup der neuen, neu erstellten feature
verzweigt mit git push origin feature
, der Vorstoß wird abgelehnt da sich der Baum durch die Neuplanung verändert hat. Dies kann nur gelöst werden mit git push --force origin feature
.
Ich hasse die Verwendung von --force
ohne sicher zu sein, dass ich es brauche. Also, brauche ich es? Ist die Umbasierung unbedingt implizieren, dass die nächste push
sollte sein --force
voll?
Dieser Funktionszweig wird nicht mit anderen Entwicklern geteilt, daher habe ich kein Problem de facto Mit dem Force Push werde ich keine Daten verlieren, die Frage ist eher konzeptionell.