Как сбросить сквош ребаз?
1 ответ
Обычно в Git нет "отмены". Я не знаком с вашим инструментом, поэтому мой ответ относится к командной строке Git. Если вы работаете в Windows, у вас, вероятно, установлен Git bash, и инструмент может иметь прямой способ запуска командной строки Git.
Создайте резервную копию своего состояния, чтобы избежать неприятностей:
git tag unsquash-backup
Сначала проверьте, если ORIG_HEAD
настроен на то, что вам нравится. Это должно быть последним состоянием, которое вы имели перед ребазингом.
git show ORIG_HEAD
Если вы видите, что это состояние, к которому вы хотите вернуться, просто сделайте
git reset --hard ORIG_HEAD
git rebase --abort
Если ORIG_HEAD
больше не то, что вы хотите, вы должны использовать git reflog
Это обычный способ избавиться от неприятностей в Git, если вы сделали то, чего не должны были делать.
git reflog
Затем найдите старый коммит (который будет выглядеть примерно так: HEAD@{8}
) в списке. Это должно быть состояние, в которое вы хотите вернуться. Сначала проверьте историю этого коммита
git log HEAD@{8}
И тогда вы можете сбросить свою ветку в это состояние.
git reset --hard HEAD@{8}
Конечно подставляя HEAD@{8}
везде с коммитом, который вы нашли в git reflog
,
Примечание: стандартное предупреждение применяется, если вы используете git reset --hard
, вы потеряете все текущие незафиксированные изменения.