Git reset --hard без потери истории - PullRequest
0 голосов
/ 28 октября 2019

У меня следующая ситуация:

A-B-C-D (master)

Я хочу отменить все локальные изменения из D и перейти от D туда, где все было как в B, но я не хочу просто идти в BЯ хочу, чтобы стадия B была добавлена ​​в текущую историю, так что я получаю:

A-B-C-D-B' (master)

Так же, как вернуться от D к B, но с сохранением этого возврата в истории.

Когда я делаю сброс --hard Я теряю свою историю от B до D, и в итоге получаю:

A-B (master)

Я просто хочу добавить точку истории в историю и начать работать надэта верхняя точка и это без создания новых веток и т. д. Например, получить все как было в B и зафиксировать его (с сообщением фиксации: "reverted from B") сверху.

Возможно ли это как-то?

1 Ответ

4 голосов
/ 28 октября 2019

Да, git revert это именно то, что вы ищете. Он создает новый коммит, который отменяет изменения данных коммитов.

В вашем случае все следующие команды эквивалентны:

git revert HEAD~2..
git revert HEAD~1 HEAD
git revert <hash_of_C>..<hash_of_D>
git revert <hash_of_B>..

См. документацию длябольше информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...