2009-09-08 11 views
10

ho dei commit che sono in un repository remoto (origine/master) che voglio mettere in un ramo creato da quel repository (origine/remote_branch) .git dice tutto-up-to-date quando si spingono le modifiche su un ramo remoto

quando ho Checkout per quel ramo remoto

git checkout -b mybranch origin/remote_branch 

poi ciliegia scelto i commit che ho fatto

git cherry-pick 9df63616b0428cf6edc4261adb533a1ac516b9a0 

git dice tutto-up-to-date quando provo a spingere.

git push 

c'è qualcosa che sto sbagliando?

risposta

24

A seconda della versione di Git, si può tentare di spingere i rami con nomi corrispondenti, vale a dire, master-origin/master e remote_branch a origin/remote_branch. Se il tuo repository di origine non ha un ramo chiamato mybranch, allora pensa che non ci sia nulla da aggiornare.

Per ignorare questa impostazione predefinita, si può dire in modo esplicito git che si diramano da utilizzare come sorgente (mybranch), e che da utilizzare come destinazione sul repository remoto (remote_branch):

git push origin mybranch:remote_branch 

C'è un'opzione di configurazione per dire git a spingere alle succursali di monitoraggio remoto di default:

git config --global push.default tracking 

trovo questo più intuitivo e penso che sia il comportamento che stai cercando. Prova l'opzione push.default nel git config man page. Controlla anche la sezione Esempi nel git push man page per vedere come sovrascrivere il comportamento predefinito.

+0

whoa! "Se il repository di origine non ha un ramo chiamato mybranch, allora pensa che non ci sia nulla da aggiornare." questo totalmente fatto! Grazie per la risposta rapida! :) –

Problemi correlati