git reset
Отмена коммита или отмена изменения, при этом сбросывается текущий снимок последнего коммита (HEAD) в указанное состояние. Если передается путь, он работает как "unstage"; если передается хэш коммита или ветвь, он работает как "uncommit".
- Установить состояние "Unstage":
git reset
- Установить состояние "Unstage" конкретных файлов:
git reset {{path/to/file(s)}}
- Установить состояние "Unstage" частей файлов:
git reset -p {{path/to/file}}
- Отменить последний коммит, сохранив его изменения (и любые дальнейшие незафиксированные изменения) в файловой системе:
git reset HEAD~
- Отменить последние два коммита, добавив их изменения в индекс, т.е. подготовленные для коммита:
git reset --soft HEAD~2
- Отменить любые незафиксированные изменения, будь те в состоянии "staged" или нет (только для изменений в состоянии "Unstaged" использовать
git checkout
):
git reset --hard
- Сбросить репозиторий до заданного коммита, с этого момента отбрасывая зафиксированные, поэтапные (staged) и незафиксированные изменения:
git reset --hard {{commit}}