2013-08-13 3 views
1

У меня есть локальная ветка, где я не внес никаких изменений. Затем я делаюКак обновить локальное репо с помощью git pull без нажатия

git checkout anotherbranch 
# Switched to branch 'anotherbranch' 
# Your branch is behind 'origin/anotherbranch' by 25 commits, and can be fast-forwarded. 
# (use "git pull" to update your local branch) 

Так что я должен потянуть, чтобы получить все последние изменения. Я делаю это

git pull origin anotherbranch 

Я ожидаю, что теперь все будет в синхронизации, но это не потому, что

git status 
On branch anotherbranch 
Your branch is ahead of 'origin/anotherbranch' by 2 commits. 
(use "git push" to publish your local commits) 

nothing to commit, working directory clean 

Является ли это потому, что слияние часть мерзавца тянуть добавил еще два коммиты? Однако эти коммиты не показывают, когда я делаю git log. Вместо этого на вершине находятся две фиксации, сделанные другим автором. Мне нехорошо толкать его два коммита. На самом деле я не хочу ничего нажимать, но просто обновляю свой локальный филиал. Как я могу это сделать? В случае, если мерзавец тянуть была ошибка, как я могу вернуть его без создания альтернативных реальностей или других GIT ужасов (я не нажат ничего, кроме другого признака филиала)

+0

Это не ответ, но может помочь диагностировать проблему. В новом каталоге, где-то вдали от вашего существующего репо, используйте 'git clone', чтобы получить новую копию репо. Затем проверьте свою другую ветку снова. Если проблема не устранена, вы знаете ее не все, что вы сделали в своем первоначальном репо. – Nick

ответ

0
git status 
On branch anotherbranch 
Your branch is ahead of 'origin/anotherbranch' by 2 commits. 
(use "git push" to publish your local commits) 

Это означает, что у вас есть 2 фиксаций, которые не вдавлено.

В качестве лучшей практики хорошо работать

git fetch 

раз в то время, чтобы получить все метаданные сервера (обновленные удаленные филиалы, новые коммиты и т.д.)

, что является результатами этой команды:

git log --oneline 

он покажет вам все бревно с фиксаций так юй может увидеть, что проблема

+0

Итак, вы и git придерживаетесь такого же мнения и, вероятно, правы, но я не понимаю, как это может быть. Я недавно клонировал репо, а затем добавил только ветвь функции с фиксацией. Эта ветвь функции не должна влиять на вывод статуса git, когда я нахожусь в другой ветке, не так ли? Когда я делаю git log origin/anotherbranch..anotherbranch Он показывает две коммиты с другим автором. Как они могут быть на моем компьютере, но не на удаленном репо, который я только что клонировал? – Hurve

+0

только добавил ветвь функции с фиксацией , когда вы добавили ветвь функции git, объединив две ветви для вас, а результат - 2 фиксации, которые у вас есть. вы можете вставить выходные данные своего «git log -oneline», пожалуйста, чтобы я мог видеть, есть ли у вас слияния – CodeWizard

-1

Итак, прежде чем я сделаю git checkout anotherbranch Мне нужно сделать git rebase origin/anotherbranch ничего страшного в этом, потому что я был на частной ветке функций.

+0

Не могли бы вы улучшить этот ответ, добавив ссылку на некоторую исходную информацию или, возможно, немного более понятную объяснение? Вы также можете принять ответ CodeWizards, если это помогло (старый я знаю) – JimLohse

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