Git: безопасно вернуться к предыдущему мастеру - PullRequest
0 голосов
/ 21 марта 2020

Мне нужно вернуть мой master к предыдущему слиянию. Большинство ответов здесь предоставляют способы разрушительного действия (то есть, я не смогу перекатить его вперед, и я потеряю всю работу после этой фиксации).

Как можно Я возвращаюсь к предыдущему коммиту, сохраняя при этом свой текущий мастер?

1 Ответ

1 голос
/ 21 марта 2020

В большинстве ответов здесь представлены способы, позволяющие это сделать деструктивно (имеется в виду, что я не смогу перекатить его вперед и потеряю всю работу после этой фиксации).

Ни один из ответов здесь не дает этого. Возвращение master к предыдущему слиянию означает изменение метки. Git помнит, где были ярлыки. Все, чего можно достичь за последний месяц, все еще ждет вас. Так что поменяйте метку:

git checkout -B master that.previous.merge

, и вам не понравится то, что вы видите, верните ее с помощью

git checkout -B master master@{1}

Используйте git reflog master, чтобы увидеть все места, которые master имеет был в прошлом месяце или около того. То же самое с любой ссылкой, включая «все, что я проверил прошлым утром в понедельник»:

git checkout -B master HEAD@{last.monday.morning}

или, если вы хотите увидеть некоторые варианты, проверьте то, что выглядит интересным из списка git reflog @{last.monday.morning} показывает вам, потому что HEAD (git - это обычная ссылка по умолчанию) - это просто ссылка на все, что вы получили, поэтому у него есть свой собственный журнал ссылок.

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