2012-06-10 3 views
3

Я вижу другие подобные вопросы, но я действительно не понимаю, почему это происходит. На данный момент я использую git reset --hard HEAD, а затем вручную добавляю свои изменения. Предлагаемое решение похоже git pull origin master? Но после этого я все еще получаю одно и то же сообщение. Что не так? Как слить? Я все еще относительно новый для GITGit: Филиал впереди Х совершает. Не помогает делать git pull

$ git pull origin master 
Nodester! 
Enter passphrase for key '/home/jiewmeng/.ssh/id_rsa': 
From nodester.com:/node/git/jiewmeng/10267-f62c0a21d1a9d75ab7b6ace5858921d0 
* branch   master  -> FETCH_HEAD 
Merge made by the 'recursive' strategy. 

$ git branch -a 
* master 
    remotes/origin/master 
+0

Можете ли вы опубликовать вывод команды 'git pull'? А также 'git branch -a'? – lindelof

+0

Сколько у вас удаленных репозиториев? Используйте «git remote» для отображения пультов. Если их несколько, настройте ли вы 'master' для отслеживания другого удаленного, чем' origin'? Это наиболее распространенный сценарий получения «ветви вперед» сообщением X commits. – Sailesh

+0

@ lindelof, я опубликовал вывод 'git pull' &' branch' –

ответ

8

Как уже упоминалось в "Why is Git telling me “Your branch is ahead of 'origin/master' by 11 commits.” and how do I get it to stop?"

"вашей отрасли опережает по ..." =>Вам необходимо нажать на пульте мастера.
Запустите «git diff origin/master», чтобы узнать, какие отличия между вашим местным репозиторием и удаленным основным хранилищем.

Если вы опережаете дистанционное репо одним фиксатором, это отдаленное репо, устаревшее, а не вы.
Тянуть не помогло бы.

Теперь проверьте также, действительно ли вы находитесь на ветке (а не на отдельной голове).
Это ваш случай здесь (вы действительно на master филиал)

+0

Если я не ошибаюсь, я считаю, что ошибка мешает мне делать толкание ... tho Я не совсем уверен ... уже «перезагрузился» - HEAD HEAD ... в любом случае, то, что вы сказали, имеет смысл, Я буду держать это в виду –

+0

@JiewMeng, если вы не можете нажать, это может быть другим вопросом в своем собственном. – VonC

0

ветви «вперед» по X совершает означает, что ваш локальный репозиторий имеют некоторые новые коммят не существует на удаленном репозитории. Сначала попробуйте «git fetch».

+0

'git pull' будет делать это уже? –

+0

@JiewMeng После некоторых поисков, я думаю, вы правы. – taiansu

4

«Отделение впереди Х коммитов» может иметь 2 причины: 1) У вас есть реальные коммитов, и вам нужно будет делать " git push ' 2) Филиал «origin» не синхронизирован с удаленным концом. У:

git fetch 

(первопричины по-видимому, связаны с делать «Git мастера тянуть происхождения» вместо «мерзавца тянуть»)

0

я исследуемый же вопрос в моем окр и нашел эти факты:

Происхождение/мастер - это знак (метка) на фиксации, где я выполнял клонирование. Я не создал никаких коммитов на моей стороне, просто потянув без переустановки из источника. Это вызвало синхронизацию моей стороны репо, но не перемещало и не обновляло начальную/основную позицию. Такая же ситуация возникает, если вы выполняете push (начало/мастер-метка перемещается в вашу позицию нажатия), а затем выполняйте некоторые тяги, которые извлекают некоторые новые коммиты.

git log --graph --oneline -X master 

где X является числом> = количество фиксаций «впереди», вы можете видеть после вызова статуса git. Вы можете увидеть результат в журнале, где расположена начальная/основная отметка. Эта внутренняя метка git используется для расчета сообщения о состоянии, которое мы боимся.

Хеш фиксации хранится в файле refs/remotes/origin/master. Если вы удалите этот файл, маркер origin/master исчезнет, ​​а также информация о будущих коммитах больше не будет отображаться.

Если вы хотите синхронизировать происхождения/мастер-метки для текущего мастер-РУКОВОДИТЕЛЯ просто введите

git update-ref refs/remotes/origin/master cac0cab538b970a37ea1e769cbbde608743bc96d 

где вместо моей хэш положить хэш головы от:

git log -1 

или использование копии/вставьте содержимое файла, если хотите. Результат должен быть таким же.

Это помогло мне с сообщением, но я не знаю, что еще было затронуто. Насколько я знаю, это сообщение имеет только информативный смысл, и это не ошибка или предупреждение. Все работает для меня, как и ожидалось, без каких-либо ограничений.

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