'git pull origin mybranch" les feuilles locales mybranch N engage en avant de l'origine. Pourquoi?

J'ai juste observé quelque chose d'étrange à propos de git pull, dont je ne comprends pas.

Vendredi, j'ai travaillé sur une branche locale. appelons ça de la mybranch. Avant de quitter le bureau je l'ai poussé à l'origine (ce qui est mon dépôt github): git push origin mybranch.

Hier à la maison, je pulled mybranch à mon ordinateur portable, fait un peu plus de codage, et ensuite poussé mes modifications sur github (origine).

Maintenant, je suis au travail, encore une fois, et a essayé de tirer les changements d'hier à ma machine de travail (je n'ai rien changé à mon lieu de travail locale de pensions de titres sur le week-end):

git pull origin mybranch

qui a provoqué une avance rapide de fusion, ce qui est bien. J'ai ensuite fait une git status, et il dit:

# On branch mybranch
# Your branch is ahead of 'origin/mybranch' by 6 commits.
#
nothing to commit (working directory clean)

Hein? Comment peut-il être 6 s'engage à l'avance quand je n'ai même pas le toucher pendant le week-end, ET juste tiré de l'origine? Alors j'ai couru un git diff origin/mybranch et les diffs sont exactement les 6 changements que j'ai juste tiré de la télécommande.

J'ai seulement pu "réparer" cela en exécutant git fetch origin:

From [email protected]:me/project
af8be00..88b0738  mybranch -> origin/mybranch

Apparemment, mon local repo manquait certains objets de référence, mais comment peut-il être? Je veux dire, un pull fait un fetch déjà, et je n'ai pas de travailler sur quoi que ce soit à l'exception de la branche, de sorte qu'un git fetch origin et git fetch origin mybranch devrait avoir le même résultat?

Dois-je toujours utiliser git pull origin au lieu de git pull origin branchname?

Je suis confus.

  • J'ai remarqué cela aussi, mais une git push également semblent pour le résoudre (reporting "à jour").
  • git config --get-regexp br.* peut vous dire si votre config a une section locale est suivi d'une autre branche
  • Pouvez-vous type git config branch.master.remote yourGitHubRepo.git dans votre workRepo et de vérifier (à la prochaine git pull origin) si l'état reste avec un "avant" d'avertissement?
  • ce n'est pas définie (à vide de sortie). mais git remote show origin me montre que les points d'origine de mon dépôt GitHub, donc ça devrait être bon, je suppose?
  • git remote seul (montrant la bonne adresse pour le dépôt GitHub) n'est pas assez. Pour éviter d'avoir un "Your branch is ahead le message d'avertissement" après une git pull, vous devez également permet de définir la distance de nom pour une branche. D'où ma suggestion: type git config branch.master.remote yourGitHubRepo.git, alors essayez un git pull et un git status et voir si le problème demeure.
  • Je vois, merci! Je vais essayer ça dès que possible (il n'y a rien de pousser ou de tirer ATM) et vous permettent de savoir si cela a fonctionné.
  • merci copain, vous juste m'a aidé git débarrasser de ma branche est en avance d'erreur! +1

InformationsquelleAutor Matthias | 2009-11-16