OK, ho pensato che fosse uno scenario git semplice, cosa mi sto perdendo?
Ho un master
ramo e un feature
ramo. Faccio un po 'di lavoro master
, alcuni su feature
, e poi altri ancora su master
. Finisco con qualcosa del genere (l'ordine lessicografico implica l'ordine dei commit):
A--B--C------F--G (master)
\
D--E (feature)
Non ho problemi a git push origin master
mantenere master
aggiornato il telecomando , né con git push origin feature
(quando acceso feature
) per mantenere un backup remoto per il mio feature
lavoro. Fino ad ora, stiamo bene.
Ma ora voglio ribadire feature
in cima agli F--G
impegni sul master, quindi io git checkout feature
e git rebase master
. Ancora buono. Ora abbiamo:
A--B--C------F--G (master)
\
D'--E' (feature)
Problema: nel momento in cui voglio eseguire il backup del nuovo rebased feature
ramificato git push origin feature
, la spinta viene rifiutata poiché l'albero è cambiato a causa del rebasing. Questo può essere risolto solo con git push --force origin feature
.
Odio usare --force
senza essere sicuro di averne bisogno. Quindi ne ho bisogno? Il rebasing implica necessariamente che il prossimo push
dovrebbe essere --force
completo?
Questo ramo delle funzionalità non è condiviso con nessun altro sviluppatore, quindi non ho alcun problema di fatto con la spinta forzata, non perderò alcun dato, la domanda è più concettuale.