Если вы хотите создать новый коммит поверх ваших коммитов Brancha (которые вы хотите сохранить), отражая origin / master, я бы предложил сбросить --hard затем soft (как в " Практическое использование git reset --soft
").
m--m--m (origin/master)
\
a--a--a (brancha, HEAD)
Сначала сбросьте индекс и рабочее дерево на то, что вы хотите видеть: origin / master
git checkout brancha
git branch tmp
git reset --hard origin/master
m--m--m (origin/master, brancha, HEAD)
\
a--a--a (tmp)
Проблема: brancha
на историю больше не ссылаются: переместите brancha
HEAD обратно в исходное положение, но без изменения индекса и рабочего дерева (которые оба отражают origin/master
)
git reset --soft tmp
m--m--m (origin/master)
\
a--a--a (tmp, brancha, HEAD)
Теперь вы можете добавлять и фиксировать: это должно вычислить соответствующую дельту, чтобы установить новый коммит с тем же содержимым, что и origin/master
.
git add .
git commit -m "Restore origin/master content in a new commit on brancha"
m--m--m (origin/master)
\
a--a--a----M (brancha, HEAD)
(tmp)
M
и исходная / основная фиксация должны иметь одинаковое содержимое.