git checkout tag, git pull échoue dans la branche
J'ai cloné un dépôt git, puis sorti un tag:
# git checkout 2.4.33 -b my_branch
C'est OK, mais lorsque j'essaie d'exécuter git pull
dans ma branche, git crache cette erreur:
Il n'y a pas de suivi de l'information pour la branche courante. Merci
spécifier la branche que vous souhaitez fusionner avec. Voir git pull(1) pour
détailsgit pull <remote> <branch>
Si vous souhaitez que les informations de suivi de cette branche, vous pouvez le faire
avec:git branch --set-upstream new origin/<branch>
Je veux git pull
uniquement mettre à jour la branche master et de laisser ma seule branche (c'est une balise de toute façon). Est quelque chose comme cela possible?
La raison que j'ai besoin c'est que j'ai un script automatique qui toujours git tire le référentiel et ne tient pas à cause de l'erreur ci-dessus..
- Double Possible de git pull: Il n'y a pas de suivi de l'information pour la branche courante
Vous devez vous connecter pour publier un commentaire.
Edit: Pour les nouvelles versions de Git,
--set-upstream master
a été abandonné, vous devez utiliser--set-upstream-to
à la place:Que l'on vous demande, il vous suffit d'exécuter:
Après, vous pouvez simplement exécuter
git pull
de mettre à jour votre code.git checkout master
. Je ne pouvais pas fairegit pull
parce que la référence à l'origine a été perdu. Maintenant, il fonctionne. Merci!!!!J'ai eu le même problème et il fixe avec cette commande:
Partir du fichier d'aide de l'option-u fondamentalement définit la valeur par défaut pour le tire:
Essayer ces commandes:
Revenir à la branche principale à l'aide de
et puis exécutez le
git pull
opérationEnsuite, vous pouvez revenir à votre
my_branch
de nouveau.@alesko : il n'est pas possible de ne faire uniquement
git pull
après le départmy_branch
de mettre à jourmaster
succursale de.Parce que
git pull
également de fusion de la actuel branche -> dans votre scénario à lamy_branch
@Simon: que ferons également le pousser. pourquoi est-ce?
et selon les docs:
Tout d'abord, assurez-vous que vous êtes sur la branche de droite.
Ensuite (une fois seulement):
Après que cela fonctionne de nouveau:
Vous pourriez avoir à branches multiples. Et de votre direction n'a pas mis sa en amont de la télécommande.
Des mesures pour résoudre ce problème:
par exemple
Après cela, lorsque vous ne
git pull
, il tire de branche.Essayer cette
Vous pouvez spécifier quelle direction vous voulez tirer:
Ou vous pouvez le configurer de sorte que la branche principale locale pistes github maître de la branche amont:
Cette branche de suivi est mis en place automatiquement pour vous lorsque vous clonez un dépôt (pour la branche par défaut uniquement), mais si vous ajoutez une distance d'un référentiel existant, vous devez configurer le suivi de vous-même. Heureusement, les conseils donnés par git le rend assez facile à se rappeler comment le faire.
--set-amont est obsolète dans git 1.9.x, apparemment.
À l'avenir, vous souhaitez utiliser quelque chose comme
en supposant que vous avez vérifié déjà par le maître. Si pas,
git branch -u origin/master master
travailleraVous avez besoin pour configurer votre suivi (en amont) pour la branche courante
Est déjà obsolète au lieu de cela, vous pouvez utiliser l'option --piste drapeau
J'aime aussi la doc de référence que @casey avis:
Ce qui a fonctionné pour moi a été:
git branch --set-amont=origine de maître
Quand j'ai fait un pull à nouveau j'ai seulement eu les mises à jour à partir du maître et de l'avertissement à s'en alla.
Si comme moi vous avez besoin de le faire tout le temps, vous pouvez définir un alias pour le faire automatiquement en ajoutant les lignes suivantes à votre
.gitconfig
fichier:Lorsque vous voyez le message
There is no tracking information...
, il suffit d'exécutergit set-upstream
, puisgit push
de nouveau.Grâce à https://zarino.co.uk/post/git-set-upstream/
Dans le but de simplement télécharger les mises à jour:
Cependant, c'est juste des mises à jour une référence,
origin/master
. La meilleure façon de mettre à jour votre localmaster
serait la caisse de fusion mentionné dans un autre commentaire. Si vous pouvez garantir que votre localmaster
n'a pas divergé à partir du tronc principal quiorigin/master
est sur, vous pourrait utilisationgit update-ref
à la carte votremaster
pour le nouveau point, mais ce n'est probablement pas la meilleure solution pour utiliser sur une base régulière...Cette commande est obsolète:
git branch --set-upstream master origin/master
Donc, lorsque vous essayez de configurer le suivi, c'est la commande qui a fonctionné pour moi: