Un modo:Qual è la differenza tra push branch e unire in master, quindi premere?
git checkout myBranch
git push origin myBranch:master
Un altro modo:
git checkout master
git merge myBranch
git push
Qual è la differenza tra questi due?
Un modo:Qual è la differenza tra push branch e unire in master, quindi premere?
git checkout myBranch
git push origin myBranch:master
Un altro modo:
git checkout master
git merge myBranch
git push
Qual è la differenza tra questi due?
Questo:
git checkout myBranch
git push origin myBranch:master
tentativi solo fare un fast-forward (update cioè non forzata) premendo myBranch
a master
. Se master
è raggiungibile da myBranch
, ad esempio master
non contiene alcun commit che non sia presente anche in myBranch
, il push avrà esito positivo; in caso contrario, la spinta verrà respinta.
Il precedente git checkout myBranch
è irrilevante per lo git push
, poiché si utilizza la refspec myBranch:master
. Puoi avere ulteriori informazioni su refspecs allo Git Internals - The Refspec.
Questo:
git checkout master
git merge myBranch
git push
effettivamente fonde myBranch
in master
, e quindi tenta di spingerlo ad un telecomando (con una configurazione di default di un repo Git, il telecomando sarà origine).
Perché myBranch
è in realtà fusi in master
, quindi assumendo il telecomando master
è dietro quella locale, cioè non contiene impegna i che quello locale non ha anche, quindi la spinta avrà successo, altrimenti fallirà .
Ma si noti che 'git merge' potrebbe ancora risultare in un'unione avanti veloce. Quindi il risultato finale potrebbe o non potrebbe essere lo stesso, a seconda della relazione tra master, origine/master e myBranch – knittl
@knittl Sono consapevole che 'git unire myBranch' potrebbe essere un avanzamento rapido. Non l'ho fatto presente, perché (1) dire che è un avanzamento rapido. Quindi 'git push myBranch: master' e' git push origin' sono gli stessi. Ma poi (2), diciamo che 'git unire myBranch' non è un avanzamento rapido. A questo punto, se l'utente fa 'git push origin myBranch: master', è lo stesso aggiornamento che risulterebbe da' git push origin ': sia l'avanzamento rapido del ramo remoto. Quindi è sempre lo stesso. –
@Cupcake Quindi, in modo semplice, non importa in avanti o indietro, i miei due modi risultano uguali? – Magicloud
Una domanda più importante: *** cosa stai cercando di fare, e perché? *** –
Voglio semplicemente unire le mie modifiche al master remoto. Ma non so se c'è il rischio che io possa scrivere più di qualche nuovo commit nel master remoto. – Magicloud
Nel caso di 'git push origin myBranch: master', è solo avanti veloce, purché non aggiungiate un +' + 'al refspec come' + myBranch: master', che consente quindi aggiornamenti forzati. Allo stesso modo, 'git push' è solo l'aggiornamento veloce, non forzato, basta non passare il flag di forza' -f'. –