Git pull/chercher avec refspec différences
À l'aide de refspec est un moyen pratique pour attraper une branche distante et un similaire mais avec le prénom (ou l'inverse: créer une distance avec un nom différent du local). Je suis perplexe sur une petite chose - pull permettra également de faire de la fusion avec la branche courante, je m'attends à un comportement très différent de:
git fetch origin master:mymaster
et de
git pull origin master:mymaster
Les deux commandes ci-dessus semblent produire exactement le même résultat - qui est une branche locale appelée mymaster, de même que origin/master. Ai-je raison ou est-il une vague de différence entre les deux?
Enfin, à l'aide d'un refspec permettra de créer un local branche pas un suivi branche, non? Puisque le suivi branches sont poussés automatiquement lorsque l'on invoque la commande git push sans arguments autant que je sache
OriginalL'auteur pielgrzym | 2011-08-24
Vous devez vous connecter pour publier un commentaire.
Un refspec est juste une source/destination paire. À l'aide d'un refspec
x:y
avecfetch
indique à git pour faire une succursale dans ce repo nommé "y" qui est une copie de la branche nommée "x" dans la télécommande repo. Rien d'autre.Avec
pull
, git jette une fusion sur le dessus. Tout d'abord, une extraction est réalisée à l'aide de la donnée refspec, puis l'agence de destination est fusionné dans la branche courante. Si cela est source de confusion, voici une étape-par-étape:Pleinement qualifié, qui serait
refs/heads/mymaster
etrefs/heads/master
. Pour comparaison, la valeur par défaut refspec mis en place par git sur un clone est+refs/heads/*:refs/remotes/origin/*
.refs/remotes
fait une pratique de l'espace de noms pour garder à distance les branches distinctes de celles locales. Ce que vous êtes en train de faire est de dire à git de mettre à distance le suivi de la branche dans le même espace de noms que vos branches locales.Comme pour "le suivi des branches", c'est juste une entrée dans votre fichier de config dire à git où tirer et pousser une branche locale de/par défaut.
OriginalL'auteur Ryan Stewart
git fetch origin master:mymaster
mises à jour de la branche mymaster dans le dépôt local par l'extraction de la branche master du dépôt distant.git pull origin master:mymaster
ne ci-dessus et les fusionne dans la branche courante.OriginalL'auteur manojlds
J'avais utilisé smartgit de créer des branches, donc peut-être à cette branche n'est pas correctement fusionnés en maître.
Créé à la direction générale du soutien pour la libération ie support/4.2, tag automatiquement créé mais maintenant wehn j'essaie de faire un git pull, il me montre même erreur.
En tant que support/4.2 brannch est créé dans github, mais pas bien intégrées dans les locaux.
J'ai donc utilisé :-
git pull origin master:mymaster
Dans mon cas - git pull origin support/4.2:soutenir/4.2
Il fonctionne 🙂
OriginalL'auteur kandysingh