Как пользоваться: Генератор команд Git
- Найдите свою задачу в списке или воспользуйтесь поиском: «отмена», «переименовать», «stash», «squash».
- Заполните имена веток, хеши коммитов или пути к файлам, которые нужны для задачи.
- Прочитайте пояснение под каждой командой. Шаги, помеченные как переписывает историю или деструктивно, требуют осторожности в общих ветках.
- Скопируйте одну команду или все сразу и выполните их в терминале из папки репозитория.
Отмена действий в Git: какую команду когда использовать?
| Ситуация | Команда | Безопасно для отправленных коммитов? |
|---|---|---|
| Отменить последний коммит, сохранив изменения | git reset --soft HEAD~1 | Нет — переписывает историю |
| Отменить коммит, который другие уже получили | git revert <hash> | Да — добавляет новый коммит |
| Отбросить незакоммиченные изменения в файле | git restore <file> | Только локально |
| Исправить сообщение последнего коммита | git commit --amend | Нет — переписывает историю |
| Отложить незавершенную работу | git stash push -m "…" | Только локально |
Безопасное переписывание истории
Команды вроде reset, commit --amend и интерактивный rebase создают новые коммиты с новыми хешами. В собственной ветке это нормально, но в общей ветке история у остальных участников перестанет совпадать. Если без отправки переписанной истории не обойтись, используйте git push --force-with-lease: в отличие от --force, эта команда не перезапишет коммиты на удаленном сервере, которых вы не видели.
Современные команды: switch и restore
Начиная с Git 2.23, git switch (переключение веток) и git restore (восстановление файлов) разделили перегруженную команду git checkout на две более понятные. Генератор использует их там, где это делает команды яснее. Перед отправкой кода держите репозиторий в порядке с помощью правильного .gitignore, пишите заметки о релизах в Генераторе журнала изменений и выбирайте номера версий в Калькуляторе семантических версий.
Также ищут как: git squash коммиты, git revert коммит, git force with lease.
Инструменты, которые хорошо сочетаются с Генератор команд Git
- Конструктор Conventional Commits — Пишите сообщения коммитов по спецификации Conventional Commits и не запоминайте её наизусть.
- Генератор GitHub Actions — Выберите стек, триггеры и шаги, и вы получите закомментированный файл .github/workflows/ci.yml — установка, кеш, линтинг, тесты, сборка, матрица версий и необязательный деплой на GitHub Pages, Vercel или в реестр контейнеров.
- Генератор README — Заполните несколько полей и получите аккуратный README.md, готовый для GitHub: бейджи, установка, пример использования, таблица настроек, переменные окружения, план развития и лицензия.
- Валидатор YAML — Вставьте файл Docker Compose, манифест Kubernetes, workflow GitHub Actions или любой YAML, чтобы найти ошибку, поймать типичные ловушки и получить аккуратно отформатированную версию.
Часто задаваемые вопросы
Как отменить последний коммит, но сохранить изменения?
git reset --soft HEAD~1. Коммит исчезнет, а его изменения останутся в индексе. Чтобы оставить их в рабочей копии без индекса, используйте --mixed (по умолчанию). Не делайте этого с коммитами, которые уже отправлены в общую ветку, — в таком случае используйте git revert.В чем разница между git reset и git revert?
reset переносит указатель ветки назад и удаляет коммиты из истории. revert сохраняет историю и добавляет новый коммит, который отменяет изменения. Это безопасно для коммитов, которые уже есть у других участников.Как переименовать ветку локально и на GitHub?
git branch -m old new, отправьте новое имя командой git push -u origin new и удалите старое командой git push origin --delete old. При необходимости обновите ветку по умолчанию в настройках GitHub.Опасно ли использовать git push --force?
--force-with-lease: она перезапишет ветку на сервере, только если там осталось то состояние, которое вы видели в последний раз.