balise de vérification git, git pull échoue dans la twig

J’ai cloné un repository git puis extrait une balise:

# git checkout 2.4.33 -b my_branch 

C’est correct, mais quand j’essaie de lancer git pull dans ma twig, git crache cette erreur:

Il n’y a pas d’informations de suivi pour la twig actuelle. Veuillez spécifier la twig avec laquelle vous souhaitez fusionner. Voir git-pull (1) pour plus de détails

 git pull   

Si vous souhaitez définir des informations de suivi pour cette twig, vous pouvez le faire avec:

 git branch --set-upstream new origin/ 

Je veux que git pull ne mette à jour que la twig principale et laisse ma twig actuelle seule (c’est un tag quand même). Est-ce que quelque chose comme cela est possible?

La raison pour laquelle j’ai besoin de ceci est que j’ai un script automatique qui tire toujours le repository et, bien sûr, échoue à cause de l’erreur ci-dessus.

Edit: Pour les nouvelles versions de Git, --set-upstream master a été déconseillé, vous devez utiliser plutôt --set-upstream-to :

 git branch --set-upstream-to=origin/master master 

À l’invite, vous pouvez simplement lancer:

 git branch --set-upstream master origin/master 

Après cela, vous pouvez simplement lancer git pull pour mettre à jour votre code.

J’ai eu le même problème et corrigé avec cette commande:

 $ git push -u origin master 

A partir du fichier d’aide, l’option -u définit essentiellement la valeur par défaut pour les tirages:

 -u, --set-upstream` For every branch that is up to date or successfully pushed, add upstream (tracking) reference, used by argument-less git-pull(1) and other commands. For more information, see branch..merge in git-config(1). 

Essayez ces commandes:

 git pull origin master git push -u origin master 

Revenez à la twig maître en utilisant

 $ git checkout master 

puis exécutez l’opération git pull

 $ git pull origin/master 

Ensuite, vous pouvez revenir à votre my_branch nouveau.

@alesko : il n’est pas possible de ne faire que git pull après checkout my_branch pour ne mettre à jour que la twig master .
Parce que git pull va également fusionner avec la twig actuelle -> dans votre scénario à my_branch

@Simon : ça fera aussi la poussée. pourquoi donc?

 $ git branch -u origin/master Branch master set up to track remote branch master from origin. 

et selon docs:

 -u  Set up 's tracking information so  is considered 's upstream branch. If no  is specified, then it defaults to the current branch. 

Tout d’abord, assurez-vous d’être sur la bonne twig.
Ensuite (une seule fois):

 git branch --track 

Après cela, cela fonctionne à nouveau:

 git pull 

Vous pourriez avoir plusieurs twigs. Et votre agence actuelle n’a pas mis en place sa twig en amont.

Étapes pour résoudre ce problème:

 git checkout branch_name git branch --set-upstream-to=origin/remote_branch_name local_branch_name 

par exemple

 // this set upstream of local branch develop to remote branch origin/develop, git branch --set-upstream-to=origin/develop develop 

Après cela, lorsque vous git pull , il tire de la twig spécifiée.

Essaye ça

 git checkout master git pull origin master 

Vous devez configurer votre suivi (en amont) pour la twig en cours

 git branch --set-upstream master origin/master 

Est déjà déconseillé à la place de ce que vous pouvez utiliser

 git branch --track master origin/master 

J’aime aussi la référence doc que remarque @casey:

 -u  Set up 's tracking information so  is considered 's upstream branch. If no  is specified, then it defaults to the current branch. 

Ce qui a fonctionné pour moi a été: git branch –set-upstream-to = origin master Quand j’ai à nouveau tiré, je n’ai reçu que les mises à jour du maître et l’avertissement a disparu.

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 fichier .gitconfig :

 [alias] set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD` 

Lorsque vous voyez le message There is no tracking information... , lancez simplement git set-upstream , puis git push .

Merci à https://zarino.co.uk/post/git-set-upstream/

Vous pouvez spécifier quelle twig vous voulez tirer:

 git pull origin master 

Ou vous pouvez le configurer pour que votre twig principale locale suive la twig principale de github en amont:

 git branch --set-upstream-to=origin/master master git pull 

Ce suivi de twig est configuré automatiquement pour vous lorsque vous clonez un référentiel (pour la twig 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 rendent cela facile à retenir.

–set-upstream est obsolète dans git 1.9.x, apparemment. En allant de l’avant, vous voudriez utiliser quelque chose comme

 git branch -u origin/master 

en supposant que vous avez déjà extrait le master. Sinon, git branch -u origin/master master fonctionnera

Afin de simplement télécharger les mises à jour:

 git fetch origin master 

Cependant, cela ne fait que mettre à jour une référence appelée origin/master . Le meilleur moyen de mettre à jour votre master local serait la vérification / fusion mentionnée dans un autre commentaire. Si vous pouvez garantir que votre master local n’a pas divergé de la ligne principale d’ origin/master , vous pouvez utiliser git update-ref pour mapper votre master actuel sur le nouveau point, mais ce n’est probablement pas la meilleure solution à utiliser. une base régulière…

Cette commande est obsolète: git branch --set-upstream master origin/master

Donc, en essayant de configurer le suivi, c’est la commande qui a fonctionné pour moi:

 git branch --set-upstream-to=origin/master master