OK, ich dachte, das wäre ein einfaches Git-Szenario. Was vermisse ich?
Ich habe einen masterZweig und einen featureZweig. Ich arbeite daran master, einige daran featureund dann noch mehr master. Am Ende habe ich so etwas (die lexikografische Reihenfolge impliziert die Reihenfolge der Commits):
A--B--C------F--G (master)
\
D--E (feature)
Ich habe kein Problem damit git push origin master, die Fernbedienung auf dem neuesten masterStand zu halten oder eine Remote-Sicherung für meine Arbeit zu verwalten git push origin feature(wenn diese aktiviert ist feature) feature. Bis jetzt sind wir gut.
Aber jetzt möchte ich mich zusätzlich featurezu den F--GCommits auf Master neu gründen , also ich git checkout featureund 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 die neue featureverzweigte Verzweigung sichern möchte git push origin feature, wird der Push abgelehnt, da sich der Baum aufgrund der Neubasierung geändert hat. Dies kann nur mit gelöst werden git push --force origin feature.
Ich hasse es zu benutzen, --forceohne sicher zu sein, dass ich es brauche. Also brauche ich es? Ist die Rebasieren unbedingt bedeuten , dass der nächste pushsein sollte --forceful?
Dieser Feature-Zweig wird nicht mit anderen Entwicklern geteilt, daher habe ich de facto kein Problem mit dem Force-Push. Ich werde keine Daten verlieren. Die Frage ist konzeptioneller.