Как в git отменить определённый коммит?
git отменить определённый коммит
1 ответ
|
Для отмены определённого коммита в git нужно знать sha1 — уникальный идентификатор коммита. Это 40-символьная строка — хэш коммита. Например, c8a861ebb73d5164c76d74ba4a55be517d67944d или 54e7fd1065761ef1d58d83b1a7f60b3ba63eff40. Можно указывать первые n символов, а не sha1 целиком. Отменить определённый коммит в git нужно командой:
1. Сначала находим нужный нам коммит, который нужно отменить. Нас интересует sha1-хэш коммита. Используем для этого любую удобную утилиту для работы с git или через интерфейс github, bitbucket и т.д.
Для поиска хэша коммита я использую стантартную команду Если помните примерное имя коммита, то можно грепнуть из git log, например: $ git log | grep -B4 '2 verdict buttons' commit c8a861ebb73d5164c76d74ba4a55be517d67944d Author: Eugene Yurkevich <yurkevich@vicman.net> Date: Tue Dec 8 11:22:08 2015 +0300 3 verdict buttons: allow/deny
2. Теперь отменяем коммит командой git revert c8a861ebb73d5164c76d74ba4a55be517d67944d
При возникновении конфликтов придётся их пофиксить, как и при git merge. После чего нужно будет как обычно сделать Если конфликтов нет, то автоматически будет создан новый коммит, отменяющий указанный коммит. Коммит отменён. Как можно было заметить, отмена коммита - это создание нового коммита (реверт-коммит), который отменяет определённый коммит. Есть возможность "чистой" отмены последнего коммита в git, если ещё не сделан git push. В этом случае никаких реверт-коммитов не останется в git-истории. |
|||
|