Возврат мастера к старому коммиту при сохранении коммитов

Вот как выглядит моя история коммитов (все было перенесено на Github, где хранится мое репо, но я единственный участник):

                           master       
                             |
..-c100-c101-c102-c103-...-c150

Мне нужно вернуть master к c100 коммит с сохранением оставшихся коммитов (то есть: c101-c102...-c150Я не хочу их терять.

Так вот что я придумал:

git checkout -b new-branch # Set up branch containing all commits
git checkout master        # Go back to master
git revert <c-100>         # Revert master branch to c-100 commit

что (надеюсь) приведет к:

   master
     |
..-c100-c101-c102-c103-...-c150
                             |
                        new-branch

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

Это правильный способ сделать это?


добавлять

Ну просто попробовал и использую git revert <SHA> не работает, он только отменяет этот коммит.

2 ответа

Это совершенно нормально. Вы также можете просто установить тег на кончике коммита, который вы хотите зафиксировать.

Ответ был (как указано здесь) использовать:

git revert --no-commit c-100..HEAD
git commit
Другие вопросы по тегам