В большинстве ответов здесь представлены способы, позволяющие это сделать деструктивно (имеется в виду, что я не смогу перекатить его вперед и потеряю всю работу после этой фиксации).
Ни один из ответов здесь не дает этого. Возвращение 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 - это обычная ссылка по умолчанию) - это просто ссылка на все, что вы получили, поэтому у него есть свой собственный журнал ссылок.