Ho impostato un repository "principale" remoto non nudo e l'ho clonato sul mio computer. Ho apportato alcune modifiche locali, aggiornato il mio repository locale e inviato le modifiche al mio repository remoto. Le cose andarono bene fino a quel punto.
Ora, ho dovuto cambiare qualcosa nel repository remoto. Quindi ho cambiato qualcosa nel mio repository locale. Mi sono reso conto che la modifica al repository remoto non era necessaria. Quindi ho provato a farlo git push
dal mio repository locale al mio repository remoto, ma ho ricevuto un errore del tipo:
Per evitare di perdere la cronologia, gli aggiornamenti non rapidi sono stati rifiutati. Unisci le modifiche remote prima di premere nuovamente. Per i dettagli, consultare la sezione "Nota sugli avanzamenti rapidi" di
git push --help
.
Ho pensato che probabilmente a
git push --force
forzerei la mia copia locale a inviare modifiche a quella remota e a renderla uguale. Impone l'aggiornamento , ma quando torno al repository remoto ed eseguo un commit, noto che i file contengono modifiche obsolete (quelle che in precedenza avevano il repository remoto principale).
Come ho detto nei commenti a una delle risposte :
[I] ho provato a forzare, ma quando torno al server principale per salvare le modifiche, ottengo una stadiazione obsoleta. Pertanto, quando commetto i repository non sono gli stessi. E quando provo ad usare di nuovo git push, ottengo lo stesso errore.
Come posso risolvere questo problema?
git push --force
è davvero un altro modo valido per forzare la spinta, e spingerà i rami così come git push origin master --force
con il default di Git push.default config settings
, anche se quali rami vengono spinti in modo diverso differisce tra le versioni di Git precedenti alla 2.0 rispetto alla 2.0.
git push --force
funziona bene in questi giorni, FWIW ...
git push --force-with-lease
funziona ancora meglio :), rifiuterà di aggiornare un ramo a meno che non sia lo stato che ti aspetti. (vedi developer.atlassian.com/blog/2015/04/force-with-lease )
git push -force
più attentamente .