OK, ho pensato che fosse uno scenario git semplice, cosa mi sto perdendo?
Ho un masterramo e un featureramo. 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 mastermantenere masteraggiornato il telecomando , né con git push origin feature(quando acceso feature) per mantenere un backup remoto per il mio featurelavoro. Fino ad ora, stiamo bene.
Ma ora voglio ribadire featurein cima agli F--Gimpegni sul master, quindi io git checkout featuree 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 featureramificato 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 --forcesenza essere sicuro di averne bisogno. Quindi ne ho bisogno? Il rebasing implica necessariamente che il prossimo pushdovrebbe essere --forcecompleto?
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.