Раздел вопрос-ответ Как отменить ошибочный git commit --amend

Я сделал merge в свою ветку.

Затем сделал некоторые изменения и закоммитил их через:

git commit --amend

Изменения добавились к merge-коммиту, что не верно. 

Как отменить последствия команды git commit --amend ?

share

1 ответ

Посмотреть git reflog (чтобы убедиться что история коммитов такая как мы ожидаем):

git reflog

Видим, что последним был "commit --amend", а перед ним будет коммит под номером {1}. 

Вывод reflog будет похож на:

ea67135 (HEAD -> EAS-9) HEAD@{0}: commit (amend): Имя последнего коммита, в который был сделан amend
4a43f63 (origin/master, master) HEAD@{1}: Имя предпоследнего коммита
4a43f63 (origin/master, master) HEAD@{2}: pull origin master: Fast-forward

Выполняем команду:

git reset --soft HEAD@{1}

Это отменит изменения внесенные в коммит командой git commit --amend.


Что, если вы поняли что вы напечатали "git reset --soft HEAD@{1}" не в той папке/репозитории? И, теперь хотите отменить уже это действие?

Смотрите git reflog внимательно. Вы можете гулять по истории. Под нулевым номером вы увидите последнее действие:

(HEAD -> branch) HEAD@{0}: reset: moving to HEAD@{1}

Под первым номером будет ваш последний коммит (который был до первого выполнения команды "git reset --soft HEAD@{1}").

Чтобы вернуться к состоянию до каких-либо изменений, напечатайте "git reset --soft HEAD@{1}" еще раз.

Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться
    НОВЫЕ ПОЛЬЗОВАТЕЛИ