Ответ 1
Удалите ветвь, затем заново создайте ее:
$ git branch -D phobos
$ git checkout --track -b phobos origin/phobos
У меня есть ветвь локального раздела, которая отслеживает удаленную ветку. Для аргумента, скажем, истории фиксаций выглядят так:
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
, и я действительно не хочу, чтобы в исходном репозитории появлялись слияния. (Итак, просто слияние - это не то, что я имею в виду.)
Кажется, что это должно быть очень просто, но мой google-fu не помог мне. Как это сделать?
Удалите ветвь, затем заново создайте ее:
$ git branch -D phobos
$ git checkout --track -b phobos origin/phobos
git checkout phobos
git reset --hard origin/phobos
Это сообщает Git to reset главе phobos
ту же фиксацию, что и origin/phobos
, и обновить рабочее дерево для соответствия.