Quando si preme su un ramo non predefinito, è necessario specificare il riferimento sorgente e il riferimento objective:
git push origin branch1:branch2
O
git push :
Certamente, anche se funzionerà solo se è un avanzamento veloce di BRANCH2 o se lo forzate. La syntax corretta per fare una cosa del genere è
git push :
Vedi la descrizione di un “refspec” nella pagina man di git push per maggiori dettagli su come funziona. Si noti inoltre che sia la forza che il reset sono operazioni che “riscrivono la cronologia” e non dovrebbero essere tentate dai deboli di cuore a meno che non siate assolutamente sicuri di sapere cosa state facendo rispetto a qualsiasi repository remoto e altro persone che hanno biforcazioni / cloni dello stesso progetto.
Nel mio caso ho avuto un commit locale, che non è stato spinto origin\master , ma è stato assegnato al mio ramo master locale. Questo commit locale dovrebbe ora essere trasferito su un altro ramo.
Con Git Extensions puoi fare qualcosa del genere:
(Crea se non esistente e) controlla il nuovo ramo, dove vuoi spingere il tuo commit.
Seleziona il commit dalla cronologia, che dovrebbe essere impegnato e spinto a questo ramo.
Fai clic con il tasto destro del mouse e seleziona Commessa selezione selva .
Premere successivamente il pulsante di selezione Cherry .
Il commit selezionato viene applicato al tuo ramo estratto. Ora impegnarsi e spingerlo.
Controlla il tuo vecchio ramo, con il commit difettoso.
Hard reset a questo ramo fino al penultimo commit, dove tutto era ok (sii consapevole di cosa stai facendo qui!). Puoi farlo facendo clic con il tasto destro del mouse sul penultimo commit e seleziona Reimposta ramo corrente qui . Conferma l’opperazione, se sai cosa stai facendo.
Potresti farlo anche sulla riga di comando di GIT . Esempio copiato da David Christensen :
Penso che troverete git cherry-pick + git reset per essere un stream di lavoro molto più veloce:
Usando il tuo stesso scenario, con “feature” come il ramo con il commit più in alto non corretto, sarebbe molto più facile farlo: