2011-01-30 2 views
8
git version 1.7.3.5 

У меня есть следующие филиалы:обновление веток с помощью мерзавец тянуть

git branch 
    image 
    master 
* video 

я сделал какую-то работу в офисе. И когда я вернулся домой, я постоянно обновляю записную книжку своего дома.

Однако, когда я сделал git remote show origin я получаю следующее:

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) 

Так что я сделал GIT тянуть за все эти ветви:

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

Когда я статус GIT на видео и изображения я получаю:

nothing to commit (working directory clean) 

Когда я делаю статус git на главной ветке, я получаю:

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

Что я не понимаю следующее (fast-forwardable) и (local out of date)?

Но в статусе git для видео говорится, что он обновлен?

Нужно ли мне нажимать моего хозяина, если он впереди на 5 коммитов?

Большое спасибо за любые предложения

+2

запустить 'журнал мерзавца --stat --pretty = формат: '% Cred% ч% Creset -% s% Cgreen (% кр)% Creset' --abbrev фиксации --date = relative origin/master..master', чтобы получить представление о различии. '(fast-forwardable)' означает, что безопасно нажать: у ветвей есть одни и те же коммиты, за исключением одной ветки («local» в ваших случаях) имеет некоторые дополнительные коммиты сверху. – jfs

ответ

14

git remote show origin сравнивает свой локальный репозиторий с пульта дистанционного управления:

  • fast-forwardable означает, что вы можете нажать ваши локальные изменения в удаленном филиале.
  • local out of date означает, что ваша локальная ветка находится за удаленной веткой, и вы должны вытащить ее.

git status сравнивает свой локальный рабочий каталог с текущей фиксации текущей ветви (ака HEAD). Кроме того, он сравнивает вашу местную ветвь с (локальной!) Отслеживанием копией удаленного филиала (origin/master), отсюда Your branch is ahead of 'origin/master' by 5 commits.

Чтобы решить расхождение между git status (который показывает только локальные данные) и git remote show origin (который показывает «живой» удаленные данные), вы должны запустить git remote update origin, который обновит ваши локальные ветви отслеживания. Он обновит ваш локальный origin/master до состояния master. После этого git status должно дать вам что-то вроде Your branch is behind 'origin/master' by X commits, and can be fast-forwarded.

+0

Если я получаю «Ваша ветка позади« происхождение/мастер »с помощью X-коммитов и может быть переадресована быстро». Что делать? Заранее спасибо. – MikeSchinkel

+1

Используйте 'git pull origin master', чтобы обновить локальный' master'. – Koraktor

+0

Спасибо за ответ! – MikeSchinkel

Смежные вопросы