Git: Unione di un ramo Remoto in locale

Ho tirato remota di tutti i rami via git fetch --all. Posso vedere il ramo mi piacerebbe unire, tramite git branch -a come telecomandi/origine/branchname. Il problema è il suo non è accessibile. Io non riesco a unire o cassa?

InformationsquelleAutor micahblu | 2014-02-08

 

5 Replies
  1. 271

    È possibile fare riferimento a quelle di monitoraggio remoto rami ~(elencati con git branch -r) con il nome del loro telecomando.

    È necessario recuperare il ramo remoto:

    git fetch origin aRemoteBranch
    

    Se si desidera unire uno di quei remoto rami sul vostro ramo locale:

    git checkout master
    git merge origin/aRemoteBranch
    

    Nota 1: Per un grande repo con una lunga storia, si vuole aggiungere il --depth=1 opzione quando si utilizza git fetch.

    Nota 2: Questi comandi funzionano anche con altri remoto repos in modo che è possibile l’installazione di un origin e un upstream se si sta lavorando su una forchetta.


    Scenario opposto: Se si desidera unire un vostro ramo locale di un ramo remoto (rispetto ad un ramo remoto a locale, come mostrato sopra), è necessario creare un nuovo filiale top di detto ramo remoto prima:

    git checkout -b myBranch origin/aBranch
    git merge anotherLocalBranch
    

    L’idea qui è di unire “un vostro ramo locale” (qui anotherLocalBranch) per un ramo remoto (origin/aBranch).

    Per questo, si crea il primo “myBranch” come rappresentante di filiali remote: che è il git checkout -b myBranch origin/aBranch parte.

    E poi è possibile unire anotherLocalBranch ad esso (per myBranch).

    • aLocalBranch? è che un errore di battitura? Credo che tu intendessi scrivere “miobranch” di nuovo?
    • No: “Se si desidera unire una vostra filiale locale su uno di quei ramo remoto”: io sono la fusione “aLocalBranch” a “myBranch“, con “myBranch“, che rappresenta un ramo remoto origin/aBranch.
    • Scusa il disturbo @VonC, nel tuo precedente commento si dice aLocalBranch non è un errore di battitura, ma è approvato l’ultima modifica (2 anni dopo!) che risolve il “probabile errore di battitura”. Volevo verificare con voi prima di annullare la modifica.
    • Hai ragione: sembra che l’avrei rivisto che modifica un po ‘ in fretta, al confine con noncuranza. Ho fatto modificare la risposta per chiarire la seconda unire caso: mi puoi dire se questo è più chiaro ora?
  2. 82

    Ogni volta che faccio un merge, vado in filiale voglio unire in (ad esempio,”git checkout branch-i-am-working-in“) e quindi eseguire le operazioni seguenti:

    git merge origin/branch-i-want-to-merge-from

    • Credo che devi fare un git fetch origin/branch-i-want-to-merge-from, giusto?
    • git fetch origin develop seguita da git merge origin/develop
    • Hai ragione, questo è il modo giusto per farlo. git merge da solo non è sufficiente.
    • grazie per l’intelligente convenzione di denominazione che mi ha aiutato a capire
  3. 19

    Forse si vuole traccia il ramo remoto con un ramo locale:

    1. Creare un nuovo ramo locale: git branch new-local-branch
    2. Set di questo nuovo ramo di tenere traccia di filiali remote: git branch --set-upstream-to=origin/remote-branch new-local-branch
    3. Entrare in questo ramo: git checkout new-local-branch
    4. Estrarre tutto il contenuto del telecomando, di ramo in ramo locale: git pull
  4. 15

    Recuperare il ramo remoto dall’origine primo.

    git fetch origin remote_branch_name
    

    Unione remoto ramo per ramo locale

    git merge origin/remote_branch_name
    
    • Questo ha funzionato per me quando accettato di rispondere segnalato Non è qualcosa che può unire. Nel mio caso ero l’unione da un altro utente forcella del mio repository su GitHub.
  5. 2

    Se hai già recuperato il ramo remoto e fare git branch -a,

    è possibile ottenere qualcosa di simile :

    * 8.0
      xxx
      remotes/origin/xxx
      remotes/origin/8.0
      remotes/origin/HEAD -> origin/8.0
      remotes/rep_mirror/8.0
    

    Dopo di che, è possibile utilizzare rep_mirror/8.0 per designare localmente il ramo remoto.

    Il trucco è che remotes/rep_mirror/8.0 non funziona, ma rep_mirror/8.0 fa.

    Così, un comando come git merge -m "my msg" rep_mirror/8.0 fare il merge.

    (nota : questo è un commento di @VonC risposta. L’ho messo come un’altra risposta, perché i blocchi di codice non rientrano nel formato commento)

Lascia un commento