Domanda

Ho commit che si trovano in un repository remoto (origine / master), che voglio mettere in un ramo creato da quel repository (origine / remote_branch).

quando ho checkout a quel ramo remoto

git checkout -b mybranch origin/remote_branch

poi ciliegia-raccolto 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 facendo male?

È stato utile?

Soluzione

A seconda della versione di Git, si può tentare di spingere i rami con nomi corrispondenti, vale a dire, a master origin/master e remote_branch a origin/remote_branch. Se il repository di origine non ha un ramo di nome mybranch allora pensa non c'è niente 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 per impostazione predefinita:

git config --global push.default tracking

Lo trovo più intuitivo e penso che sia il comportamento che stai cercando. Checkout l'opzione push.default nella git config uomo page . Anche checkout sezione Esempi nella href="http://www.kernel.org/pub/software/scm/git/docs/git-push.html" rel="noreferrer"> pagina man per vedere come ignorare il comportamento predefinito.

scroll top