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..

130
demandé sur ROMANIA_engineer 2012-04-13 23:55:46

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.

111
répondu Vincent Wen 2014-11-17 18:12:04

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).
90
répondu Simon Raik-Allen 2013-01-09 10:25:10

essayez ces commandes:

git pull origin master
git push -u origin master
47
répondu navins 2014-12-10 13:34:28

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.

6
répondu cfedermann 2012-04-13 20:23:35

@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.
5
répondu Casey 2017-05-23 12:02:39

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
4
répondu drzymala 2013-10-07 14:00:54

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.

4
répondu Eric Wang 2014-11-12 04:30:07

Essayez cette

git checkout master

git pull origin master
2
répondu vanarajcs 2014-11-14 12:47:45

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.
1
répondu Jorman Bustos 2014-05-27 21:51:32

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.

1
répondu Jason D 2014-09-19 13:48:53

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.

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

1
répondu rjmunro 2016-02-18 16:33:15

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

1
répondu harrypotter0 2017-11-23 11:19:31

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...

0
répondu twalberg 2012-04-13 21:55:57

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
0
répondu Aaron Lelevier 2015-07-01 17:40:24