J'ai cloné un référentiel git puis extrait une balise:
# git checkout 2.4.33 -b my_branch
C'est OK, mais quand j'essaye de courir git pull
dans ma branche, git crache cette erreur:
Il n'y a aucune information de suivi pour la succursale actuelle. Veuillez spécifier la branche avec laquelle vous souhaitez fusionner. Voir git-pull (1) pour plus de détails
git pull <remote> <branch>
Si vous souhaitez définir des informations de suivi pour cette succursale, vous pouvez le faire avec:
git branch --set-upstream new origin/<branch>
Je veux git pull
uniquement mettre à jour la branche master et laisser ma branche actuelle seule (c'est quand même une balise). Est-ce que quelque chose comme ça est possible?
La raison pour laquelle j'en ai besoin est que j'ai un script automatique qui tire toujours le référentiel et échoue bien sûr à cause de l'erreur ci-dessus.
git
git-pull
git-checkout
Alesko
la source
la source
Réponses:
Edit: Pour les versions plus récentes de Git,
--set-upstream master
a été obsolète, vous devriez utiliser à la--set-upstream-to
place:À l'invite, vous pouvez simplement exécuter:
Après cela, vous pouvez simplement exécuter
git pull
pour mettre à jour votre code.la source
git checkout master
. Je ne pouvais pas fairegit pull
parce que la référence à l'origine était perdue. Maintenant ça marche. Je vous remercie!J'ai eu le même problème et je l'ai corrigé avec cette commande:
Depuis le fichier d'aide, -u définit essentiellement la valeur par défaut pour les pulls:
la source
Essayez ces commandes:
la source
Revenez à la branche principale en utilisant
puis exécutez l'
git pull
opérationEnsuite, vous pouvez revenir à votre
my_branch
.la source
@alesko : il n'est pas possible de ne faire
git pull
qu'après le paiementmy_branch
pour mettre à jour lamaster
branche uniquement.Parce
git pull
que fusionnera également avec la branche actuelle -> dans votre scénario vers lemy_branch
@Simon : ça fera aussi la poussée. pourquoi donc?
et selon les documents:
la source
Tout d'abord, assurez-vous que vous êtes sur la bonne branche.
Puis (une seule fois):
Après cela, cela fonctionne à nouveau:
la source
Vous pouvez avoir plusieurs branches. Et votre branche actuelle n'a pas configuré son amont dans Remote.
Étapes pour résoudre ce problème:
par exemple
Après cela, lorsque vous faites
git pull
cela, il extrait de la branche spécifiée.la source
Vous pouvez spécifier la branche que vous souhaitez extraire:
Ou vous pouvez le configurer pour que votre branche master locale suive la branche master github en amont:
Ce suivi de branche est configuré pour vous automatiquement lorsque vous clonez un référentiel (pour la branche par défaut uniquement), mais si vous ajoutez une télécommande à un référentiel existant, vous devez configurer le suivi vous-même. Heureusement, les conseils donnés par git permettent de se rappeler assez facilement comment faire.
--set-upstream est obsolète dans git 1.9.x, apparemment. À l'avenir, vous voudrez utiliser quelque chose comme
en supposant que vous ayez déjà vérifié master. Sinon,
git branch -u origin/master master
fonctionnerala source
Essaye ça
la source
Vous devez paramétrer votre tracking (en amont) pour la branche actuelle
Est déjà obsolète au lieu de cela, vous pouvez utiliser l'indicateur --track
J'aime aussi la référence doc que @casey remarque:
la source
Ce qui a fonctionné pour moi était: git branch --set-upstream-to = origin master Quand j'ai refait un pull, je n'ai reçu que les mises à jour de master et l'avertissement a disparu.
la source
Si, comme moi, vous devez le faire tout le temps, vous pouvez configurer un alias pour le faire automatiquement en ajoutant ce qui suit à votre
.gitconfig
fichier:Lorsque vous voyez le message
There is no tracking information...
, exécutez simplementgit set-upstream
, puis àgit push
nouveau.Merci à https://zarino.co.uk/post/git-set-upstream/
la source
Pour simplement télécharger les mises à jour:
Cependant, cela met simplement à jour une référence appelée
origin/master
. La meilleure façon de mettre à jour votre localmaster
serait le paiement / fusion mentionné dans un autre commentaire. Si vous pouvez garantir que votre localmaster
n'a pas divergé du tronc principal activéorigin/master
, vous pouvez l' utilisergit update-ref
pour mapper votre courantmaster
vers le nouveau point, mais ce n'est probablement pas la meilleure solution à utiliser régulièrement ...la source
Cette commande est obsolète:
git branch --set-upstream master origin/master
Donc, lorsque vous essayez de configurer le suivi, voici la commande qui a fonctionné pour moi:
la source