Réponses:
Vous pouvez référencer ces branches de suivi à distance ~ (répertoriées avec git branch -r
) avec le nom de leur télécommande.
Vous devez récupérer la branche distante:
git fetch origin aRemoteBranch
Si vous souhaitez fusionner l'une de ces branches distantes sur votre branche locale:
git checkout master
git merge origin/aRemoteBranch
Remarque 1: pour un grand référentiel avec une longue histoire, vous souhaiterez ajouter l' --depth=1
option lorsque vous utilisez git fetch
.
Remarque 2: Ces commandes fonctionnent également avec d'autres dépôts distants afin que vous puissiez configurer un origin
et un upstream
si vous travaillez sur un fork.
Scénario opposé: Si vous souhaitez fusionner une de vos succursales locales sur une branche distante (par opposition à une branche distante à une locale, comme indiqué ci-dessus), vous devez d'abord créer une nouvelle branche locale au-dessus de ladite branche distante:
git checkout -b myBranch origin/aBranch
git merge anotherLocalBranch
L'idée ici, est de fusionner "une de vos succursales locales" (ici anotherLocalBranch
) à une succursale distante ( origin/aBranch
).
Pour cela, vous créez d'abord " myBranch
" comme représentant cette branche distante: c'est la git checkout -b myBranch origin/aBranch
partie.
Et puis vous pouvez fusionner anotherLocalBranch
à elle (à myBranch
).
aLocalBranch
" en " myBranch
", " myBranch
" représentant une succursale distante origin/aBranch
.
aLocalBranch
n'est pas une faute de frappe, mais vous avez approuvé la dernière modification (2 ans plus tard!) Qui corrige cette "faute de frappe probable". Je voulais vérifier avec vous avant d'annuler la modification.
Chaque fois que je fais une fusion, j'entre dans la branche dans laquelle je veux fusionner (par exemple " git checkout branch-i-am-working-in
"), puis je fais ce qui suit:
git merge origin/branch-i-want-to-merge-from
git fetch origin/branch-i-want-to-merge-from
première, non?
git fetch origin develop
suivi degit merge origin/develop
git merge
seul ne le fera pas.
git add .
-> git commit -m <message>
-> git push -u origin <branch>
?
Récupérez d'abord la branche distante à partir de l'origine.
git fetch origin remote_branch_name
Fusionner la branche distante à la branche locale
git merge origin/remote_branch_name
Vous souhaitez peut-être suivre la branche distante avec une branche locale:
git branch new-local-branch
git branch --set-upstream-to=origin/remote-branch new-local-branch
git checkout new-local-branch
git pull
Si vous avez déjà récupéré votre branche distante et que
vous le faites git branch -a
,
vous obtenez quelque chose comme:
* 8.0
xxx
remotes/origin/xxx
remotes/origin/8.0
remotes/origin/HEAD -> origin/8.0
remotes/rep_mirror/8.0
Après cela, vous pouvez utiliser rep_mirror/8.0
pour désigner localement votre branche distante.
L'astuce est que remotes/rep_mirror/8.0
cela ne fonctionne pas mais rep_mirror/8.0
fonctionne.
Donc, une commande comme git merge -m "my msg" rep_mirror/8.0
faire la fusion.
(note: ceci est un commentaire à la réponse @VonC. Je l'ai mis comme une autre réponse parce que les blocs de code ne rentrent pas dans le format de commentaire)