OK, ich dachte, das wäre ein einfaches Git-Szenario. Was vermisse ich?
Ich habe einen master
Zweig und einen feature
Zweig. Ich arbeite daran master
, einige daran feature
und 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 master
Stand 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 feature
zu den F--G
Commits auf Master neu gründen , also ich git checkout feature
und 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 feature
verzweigte 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, --force
ohne sicher zu sein, dass ich es brauche. Also brauche ich es? Ist die Rebasieren unbedingt bedeuten , dass der nächste push
sein sollte --force
ful?
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.