Risposte:
Puoi fare riferimento a quei rami di localizzazione remoti ~ (elencati con git branch -r
) con il nome del loro telecomando.
Devi recuperare il ramo remoto:
git fetch origin aRemoteBranch
Se desideri unire una di quelle filiali remote nella tua filiale locale:
git checkout master
git merge origin/aRemoteBranch
Nota 1: per un repository di grandi dimensioni con una lunga cronologia, si desidera aggiungere l' --depth=1
opzione quando si utilizza git fetch
.
Nota 2: questi comandi funzionano anche con altri repository remoti in modo da poter impostare an origin
e an upstream
se si sta lavorando su un fork.
Scenario opposto: se si desidera unire uno dei rami locali su un ramo remoto (anziché un ramo remoto con uno locale, come mostrato sopra), è necessario creare prima un nuovo ramo locale sopra detto ramo remoto:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
L'idea qui è quella di unire "una delle tue filiali locali" (qui anotherLocalBranch
) in una filiale remota ( origin/aBranch
).
Per questo, devi creare prima " myBranch
" come rappresentante quel ramo remoto: questa è la git checkout -b myBranch origin/aBranch
parte.
E quindi puoi unirti anotherLocalBranch
ad esso (a myBranch
).
aLocalBranch
" a " myBranch
", con " myBranch
" che rappresenta una filiale remota origin/aBranch
.
aLocalBranch
non è un errore di battitura, ma hai approvato l'ultima modifica (2 anni dopo!) Che corregge questo "probabile errore di battitura". Volevo verificare con te prima di annullare la modifica.
Ogni volta che faccio un'unione, entro nel ramo in cui voglio unirmi (ad es. " git checkout branch-i-am-working-in
") E quindi faccio quanto segue:
git merge origin/branch-i-want-to-merge-from
git fetch origin/branch-i-want-to-merge-from
primo, giusto?
git fetch origin develop
seguito dagit merge origin/develop
git merge
da solo non lo farà.
git add .
-> git commit -m <message>
-> git push -u origin <branch>
?
Recupera prima il ramo remoto dall'origine.
git fetch origin remote_branch_name
Unire il ramo remoto al ramo locale
git merge origin/remote_branch_name
Forse vuoi tracciare il ramo remoto con un ramo locale:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
Se hai già recuperato il tuo ramo remoto e lo fai git branch -a
,
ottieni qualcosa del tipo:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
Successivamente, è possibile utilizzare rep_mirror/8.0
per designare localmente la filiale remota.
Il trucco è che remotes/rep_mirror/8.0
non funziona ma rep_mirror/8.0
funziona.
Quindi, un comando come git merge -m "my msg" rep_mirror/8.0
fare l'unione.
(nota: questo è un commento alla risposta @VonC. L'ho inserito come un'altra risposta perché i blocchi di codice non si adattano al formato del commento)