3 частых ситуации с Git и как их разрулить
1. Случайно закоммитил не то и хочу откатиться
Ситуация: сделал коммит, понял, что рано.
Решение:
git reset --soft HEAD~1
Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить.
2. Запушил коммит с багом, нужно отменить на сервере
Ситуация: баг ушёл в main, надо быстро отменить.
Решение:
git revert <hash>
Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде.
3. Нужно достать файл из старого коммита, но не откатывать всё
Ситуация: удалили/изменили важный файл, а он был раньше.
Решение:
git checkout <commit_hash> -- путь/к/файлу
Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить.
Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку.
1. Случайно закоммитил не то и хочу откатиться
Ситуация: сделал коммит, понял, что рано.
Решение:
git reset --soft HEAD~1
Убирает последний коммит, но оставляет изменения в staged — можно поправить и снова закоммитить.
2. Запушил коммит с багом, нужно отменить на сервере
Ситуация: баг ушёл в main, надо быстро отменить.
Решение:
git revert <hash>
Создаёт новый коммит, который отменяет изменения указанного. Без force-push, удобно в команде.
3. Нужно достать файл из старого коммита, но не откатывать всё
Ситуация: удалили/изменили важный файл, а он был раньше.
Решение:
git checkout <commit_hash> -- путь/к/файлу
Извлекает конкретный файл без изменения текущей ветки. Можно сохранить, сравнить, закоммитить.
Все три команды — незаменимые штуки в повседневной работе. Можно сохранить себе как Git-аптечку.