Git: lokaal een externe branch samenvoegen

Ik heb alle remote branches opgehaald via git fetch --all. Ik kan de branch die ik wil samenvoegen via git branch -azien als remotes/origin/branchname. Het probleem is dat het niet toegankelijk is. Ik kan niet samenvoegen of afrekenen.


Antwoord 1, autoriteit 100%

Je kunt verwijzen naar die remote tracking branches ~(vermeld met git branch -r) met de naam van hun remote.

Je moet de remote branch ophalen:

git fetch origin aRemoteBranch

Als je een van die remote branches op je lokale branch wilt mergen:

git checkout master
git merge origin/aRemoteBranch

Opmerking 1:Voor een grote repo met een lange geschiedenis, wil je de optie --depth=1toevoegen wanneer je git fetch.

Opmerking 2:Deze opdrachten werken ook met andere externe repo’s, dus u kunt een originen een upstreaminstellen als u aan een vork.

Opmerking 3: user3265569suggereert de volgende alias in de reacties:

Vanaf aLocalBranch, voer git combine remoteBranch
uit
Alias:

combine = !git fetch origin ${1} && git merge origin/${1}

Tegenovergestelde scenario: als je een van je lokale vertakkingen op een vertakking op afstand wilt samenvoegen (in tegenstelling tot een vertakking op afstand naar een lokale vertakking, zoals hierboven getoond), moet je een nieuweaanmaken lokale vertakking eerst boven op de vertakking op afstand:

git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch

Het idee hier is om “een van je lokale filialen” (hier anotherLocalBranch) samen te voegen met een vertakking op afstand (origin/aBranch).
Daarvoor maak je eerst “myBranch” aan als vertegenwoordiger van die remote branch: dat is het git checkout -b myBranch origin/aBranchgedeelte.
En vervolgenskun je er anotherLocalBranchmee samenvoegen (naar myBranch).


Antwoord 2, autoriteit 27%

Telkens wanneer ik een merge doe, kom ik in de branch waarin ik wil mergen (bijv. “git checkout branch-i-am-working-in“) en doe dan het volgende:

p>

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


Antwoord 3, autoriteit 10%

Haal eerst de vertakking op afstand van de oorsprong.

git fetch origin remote_branch_name

Samenvoeg de vertakking op afstand met de lokale vertakking

git merge origin/remote_branch_name

Antwoord 4, autoriteit 6%

Misschien wil je de remote branch volgenmet een lokale branch:

  1. Maak een nieuwe lokale vestiging:
 git branch -b new-local-branch
  1. Stel deze nieuw gemaakte vertakking in om de vertakking op afstand te volgen:
 git branch --set-upstream-to=origin/remote-branch new-local-branch
  1. Betreed deze tak:
 git checkout new-local-branch
  1. Trek alle inhoud van de vertakking op afstand naar de lokale vertakking:
 git pull

Antwoord 5

Als je je remote branch al hebt opgehaald en git branch -adoet,
je krijgt zoiets als:

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

Hierna kunt u rep_mirror/8.0gebruiken om lokaal uw afstandsbediening aan te wijzen.

De truc is dat remotes/rep_mirror/8.0werkt niet, maar rep_mirror/8.0doet.

Dus, een opdracht zoals git merge -m "my msg" rep_mirror/8.0DOE DE MERGE.

(Opmerking: dit is een opmerking op @vonc Antwoord. Ik heb het als een ander antwoord gezet omdat codeblokken niet passen in het opmerkingenformaat)

Other episodes