2011-01-30 4 views
8
git version 1.7.3.5 

Je les branches suivantes:branches mise à jour avec git tirer

git branch 
    image 
    master 
* video 

je l'ai fait un peu de travail au bureau. Et quand je rentre à la maison, je mets toujours à jour le cahier de ma maison.

Cependant, quand je l'ai fait une git remote show origin que je reçois le texte suivant:

Local refs configured for 'git push': 
    image pushes to image (up to date) 
    master pushes to master (fast-forwardable) 
    video pushes to video (local out of date) 

J'ai donc fait un git pull pour toutes ces branches:

git pull origin image 
git pull origin master 
git pull origin video 

Quand je fais un statut git sur la branche de vidéo et d'image Je reçois:

nothing to commit (working directory clean) 

Lorsque je fais un statut git sur la branche principale, j'obtiens:

Your branch is ahead of 'origin/master' by 5 commits. 

que je ne comprends pas le (fast-forwardable) et (local out of date) suivants?

Mais dans l'état git pour la vidéo il a dit son à jour?

Ai-je besoin de pousser mon maître s'il est en avance de 5 commits?

Un grand merci pour toutes les suggestions

+2

exécuter 'git log --stat --pretty format =: '% Cred% h% CRESET -% s% Cgreen (% cr)% CRESET' --abbrev-commettras --date = origine relative/master..master' pour avoir une idée de la différence. '(fast-forwardable)' signifie qu'il est sûr de pousser: les branches ont les mêmes commits sauf une branche ('local' dans votre cas) a quelques commits supplémentaires sur le dessus. – jfs

Répondre

14

git remote show origin votre référentiel local compare avec la télécommande:

  • fast-forwardable signifie que vous pouvez pousser vos changements locaux à la branche à distance.
  • local out of date signifie que votre branche locale se trouve derrière la branche distante et que vous devez en tirer.

git status votre répertoire compare travail local avec le commit courant de la branche courante (aka HEAD). En outre, il compare votre succursale locale avec la copie de suivi (local!) De la branche à distance (origin/master), d'où le Your branch is ahead of 'origin/master' by 5 commits.

Pour résoudre la divergence entre git status (qui ne montre que des données locales) et git remote show origin (qui montre « live » données à distance), vous devez exécuter git remote update origin qui mettra à jour vos branches de suivi locales. Il mettra à jour votre origin/master local à l'état master de la télécommande. Après cela git status devrait vous donner quelque chose comme Your branch is behind 'origin/master' by X commits, and can be fast-forwarded.

+0

Si j'obtiens 'Votre branche est derrière 'origin/master' par X commits, et peut être avancé rapidement.» Alors que faire? Merci d'avance. – MikeSchinkel

+1

Utilisez 'git pull origin master' pour mettre votre' master' local à jour. – Koraktor

+0

Merci d'avoir répondu! – MikeSchinkel