Git, Как reset origin/master для фиксации?

I reset мой локальный мастер для совершения этой команды:

git reset --hard e3f1e37

когда я ввожу команду $ git status, терминал говорит:

# On branch master
# Your branch is behind 'origin/master' by 7 commits, and can be fast-forwarded.

#   (use "git pull" to update your local branch)
#
nothing to commit, working directory clean

Так как я хочу reset origin/header, я проверяю на начало/мастер:

$ git checkout origin/master
Note: checking out 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 2aef1de... master problem fixed for master. its okay now.

и reset заголовок с помощью этой команды:

$ git reset --hard e3f1e37
HEAD is now at e3f1e37 development version code incremented for new build.

Затем я попытался добавить commit в начало/заголовок, который мне не удалось.

$ git commit -m "Reverting to the state of the project at e3f1e37"
# HEAD detached from origin/master
nothing to commit, working directory clean

Наконец, я выхожу к моему локальному хозяину.

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

Так как я reset глава источника/хозяина, я ожидаю, что локальное и начальное должно быть в одном направлении, но, как вы видите, git говорит, что мой локальный/мастер находится за начальником/мастером на 7 коммитов.

Как я могу исправить эту проблему? То, что я ищу, - это глава локального/главного и начального/основного пункта для того же коммита. Следующее изображение показывает, что я сделал. Спасибо.

enter image description here

144
задан Hesam 16 июля '13 в 5:26
источник поделиться

2 ответов

Разделы

origin/xxx всегда являются указателями на удаленный. Вы не можете проверить их, поскольку они не указатель на ваш локальный репозиторий (вы проверяете фиксацию только потому, что вы не увидите имя, написанное в марке ветки интерфейса командной строки, только хеш-код фиксации).

Что вам нужно сделать, чтобы обновить удаленный компьютер, это заставить ваши локальные изменения освоить:

git checkout master
git reset --hard e3f1e37
git push --force origin master
# Then to prove it (it won't print any diff)
git diff master..origin/master
359
ответ дан Simon Boudrias 16 июля '13 в 5:30
источник поделиться

найденное решение помогло нам обновить мастер до предыдущего комманда, который уже был нажат:

git checkout master
git reset --hard e3f1e37
git push --force origin e3f1e37:master

Ключевым отличием от принятого ответа является хеш фиксации "e3f1e37:" перед мастером в команде push.

27
ответ дан jkovacs 19 авг. '14 в 21:44
источник поделиться

Другие вопросы по меткам