Как сбросить сквош ребаз?

Как мне сбросить git squash?

Я использую PhpStorm. Я раздавил коммиты за последние 14 дней работы. В коммите "HEAD DEV Refactor gulp file" содержится более 50 сжатых коммитов внутри.

Как мне показать / отменить их снова?

введите описание изображения здесь

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, вы потеряете все текущие незафиксированные изменения.

Другие вопросы по тегам