3 частых ситуации с Git и как их разрулить

GuDron

dumpz.ws
Admin
Регистрация
28 Янв 2020
Сообщения
9,471
Реакции
1,547
Credits
33,153
1. Случайно закоммитил не то и хочу откатиться
Ситуация: сделал коммит, понял, что рано.

Решение:
Код:
git reset --soft HEAD~1
Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить.

2. Запушил коммит с багом, нужно отменить на сервере
Ситуация: баг ушёл в main, надо быстро отменить.

Решение:
Код:
git revert <hash>
Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде.

3. Нужно достать файл из старого коммита, но не откатывать всё
Ситуация: удалили/изменили важный файл, а он был раньше.

Решение:
Код:
git checkout <commit_hash> -- путь/к/файлу
Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить.


Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку.