git checkout tag, git pull échoue dans la branche
j'ai cloné un dépôt git et j'ai ensuite vérifié une étiquette:
# git checkout 2.4.33 -b my_branch
  
    C'est OK, mais quand j'essaie d'exécuter  git pull  dans ma branche, git crache cette erreur:  
il n'y a pas d'information de suivi pour la branche actuelle. Merci spécifiez avec quelle branche vous voulez fusionner. Voir git-pull (1) pour details
git pull <remote> <branch>si vous souhaitez définir des informations de suivi pour cette branche, vous pouvez faire avec:
git branch --set-upstream new origin/<branch>
 je veux que git pull  ne mette à jour que la branche principale et laisse ma branche actuelle tranquille (c'est une étiquette de toute façon). Est quelque chose comme cela possible?  
la raison pour laquelle j'ai besoin de cela est que j'ai un script automatique qui tire toujours sur le dépôt et échoue bien sûr à cause de l'erreur ci-dessus..
14 réponses
     Edit:    Pour les nouvelles versions de Git,  --set-upstream master  a été supprimée, vous devez utiliser  --set-upstream-to  au lieu de:  
git branch --set-upstream-to=origin/master master
  
  comme il l'a demandé, Vous pouvez juste exécuter:
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 je l'ai corrigé avec cette commande:
$ git push -u origin master
  
  à partir du fichier d'aide, le -u définit essentiellement la valeur par défaut pour les tirettes:
-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.<name>.merge in 
  git-config(1).
  
    	                essayez ces commandes:
git pull origin master
git push -u origin master
  
    	                revenir à la branche principale à l'aide de
$ git checkout master
  
    et ensuite exécuter le git pull opération 
$ git pull origin/master
  
   après, vous pouvez revenir à votre my_branch  à nouveau.  
     @alesko   : il n'est pas possible de faire seulement  git pull  après la caisse  my_branch  pour mettre à jour  master  branche seulement.  
    
Parce que  git pull  va aussi fusionner à la  branche actuelle  - > dans votre scénario à la  my_branch   
@Simon : cela fera aussi la poussée. pourquoi est-ce?
$ git branch -u origin/master
Branch master set up to track remote branch master from origin.
  
  et selon docs:
-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.
  
    	                  tout d'abord, assurez-vous que vous êtes sur la bonne branche.  
     
Puis (une seule fois):  
git branch --track
  
  après que cela fonctionne à nouveau:
git pull
  
    	                vous pourriez avoir plusieurs succursales. Et votre branche actuelle n'a pas réglé son amont dans remote.
étapes pour corriger ceci:
git checkout branch_name
git branch --set-upstream-to=origin/remote_branch_name local_branch_name
  
  p.ex.
// this set upstream of local branch develop to remote branch  origin/develop,
git branch --set-upstream-to=origin/develop develop
  
   après avoir fait ceci, quand vous faites git pull , il tirer de la branche spécifiée.  
vous devez configurer votre suivi (en amont) pour la branche actuelle
git branch --set-upstream master origin/master
  
  est déjà déprécié au lieu de celui que vous pouvez utiliser -- track flag
git branch --track master origin/master
  
  j'aime aussi la référence doc que @casey remarque:
-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.
  
    	                ce qui a fonctionné pour moi était: git branch --set-amont=origine de maître Quand j'ai tiré à nouveau, je n'ai reçu que les mises à jour du maître et l'avertissement a disparu.
  si comme moi vous devez faire cela tout le temps, vous pouvez configurer un alias pour le faire automatiquement en ajoutant ce qui suit à votre  .gitconfig  fichier:  
[alias]
    set-upstream = !git branch --set-upstream-to=origin/`git symbolic-ref --short HEAD`
  
    quand vous voyez le message  There is no tracking information...  , Lancez  git set-upstream  , puis  git push  à nouveau.  
vous pouvez spécifier quelle branche vous voulez tirer:
git pull origin master
  
  ou vous pouvez le configurer pour que votre branche maître locale suive la branche maître de github en amont:
git branch --set-upstream-to=origin/master master
git pull
  
  ce suivi de branche est configuré automatiquement pour vous lorsque vous clonez un dépôt (pour la branche par défaut seulement), mais si vous ajoutez une télécommande à un dépôt existant, vous devez configurer vous-même le suivi. Heureusement, le conseil donné par git fait que assez facile de se souvenir comment faire.
--set-amont est obsolète dans git 1.9.x, apparemment. Pour aller de l'avant, vous voulez utiliser quelque chose comme
git branch -u origin/master
  
    si vous avez déjà vérifié maître. Si ce n', 
  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 . La meilleure façon de mettre à jour votre local  master  serait la caisse/Fusion mentionnée dans un autre commentaire.     si    vous pouvez garantir que votre local  master  n'a pas divergé du tronc principal que  origin/master  est sur, vous    pourrait    utiliser  git update-ref  pour mapper votre courant  master  à la nouveau point, mais ce n'est probablement pas la meilleure solution pour utiliser sur une base régulière...  
  cette commande est dépréciée:  git branch --set-upstream master origin/master   
donc, en essayant de configurer le tracking, c'est la commande qui a fonctionné pour moi:
git branch --set-upstream-to=origin/master master