Git: отменить все изменения в разветвленной местной ветке - PullRequest
99 голосов
/ 01 марта 2010

У меня есть локальная ветка тем, которая отслеживает удаленную ветку.Ради аргумента, скажем, что истории коммитов выглядят так:

A--B--C--O1--O2--O3 (origin/phobos)
       \
         L1--L2--L3 (phobos)

Посмотрев относительные истории коммитов, я теперь хочу отменить все изменения в локальной ветке phobos и вернуть их обратно.быть прямой копией origin/phobos, так что локальная история выглядит следующим образом:

A--B--C--O1--O2--O3 (phobos origin/phobos)

Я действительно не хочу локальных изменений в ветке phobos, и я действительно не хочухотите, чтобы впоследствии слияния появлялись в репозитории источника.(Так что, просто объединение - это не то, что я имею в виду.)

Кажется, это должно быть очень легко, но мой гугл-фу подвел меня.Как мне это сделать?

Ответы [ 2 ]

284 голосов
/ 01 марта 2010
git checkout phobos
git reset --hard origin/phobos

Это говорит Git, что нужно сбросить заголовок phobos на тот же коммит, что и origin/phobos, и обновить рабочее дерево для соответствия.

72 голосов
/ 01 марта 2010

Удалите ветку, затем заново создайте ее:

$ git branch -D phobos
$ git checkout --track -b phobos origin/phobos
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...