Перейти к содержанию

Коммиты: Сохранение изменений

Коммит — это снимок состояния вашего репозитория в определенный момент времени. Это основная единица истории в Git.

Создание коммита

Базовый коммит с сообщением

git commit -m "Краткое описание изменений"

Флаг -m позволяет написать сообщение коммита прямо в терминале.

Коммит без флага -m (через редактор)

Если не указать -m, Git откроет текстовый редактор для ввода сообщения:

git commit

Это рекомендуется для многострочных сообщений.

Структура хорошего сообщения коммита

Правильное сообщение помогает понять историю проекта спустя месяцы.

Формат:

Заголовок (до 50 символов)

Пустая строка

Подробное описание (если нужно).
- Что изменилось?
- Почему это было сделано?
- Какие побочные эффекты?

Описание пишется в повелительном наклонении ("Добавить", а не "Добавил").

Пример:

Добавить валидацию email в форму регистрации

- Добавлена проверка формата email на клиенте
- Добавлена серверная валидация
- Исправлена ошибка отображения ошибки валидации

Closes #123

Изменение последнего коммита

Если вы забыли добавить файл или хотите исправить опечатку в сообщении:

git commit --amend -m "Новое исправленное сообщение"

Внимание: --amend меняет хеш коммита. Не используйте его для коммитов, которые уже отправлены в удаленный репозиторий (если только вы не уверены, что никто другой еще не забрал эти изменения).

Пропуск стадии индексирования

Можно добавить все отслеживаемые измененные файлы и сделать коммит одной командой:

git commit -a -m "Сообщение"

Флаг -a автоматически добавляет измененные файлы, но не добавляет новые (неотслеживаемые) файлы. Их всё равно нужно добавлять через git add.

Просмотр коммитов

Посмотреть последний коммит:

git show

Посмотреть статистику изменений в последнем коммите:

git show --stat

Отмена коммита (до отправки)

Если вы сделали коммит, но поняли, что он ошибочен, и еще не делали git push:

git reset --soft HEAD~1

Эта команда отменит коммит, но оставит изменения в индексе (готовыми к новому коммиту).

git reset --mixed HEAD~1

Отменит коммит и уберет файлы из индекса, но оставит изменения в файлах.

git reset --hard HEAD~1

Опасно! Полностью удалит коммит и все изменения в файлах. Используйте только если уверены.


Назад: Staging → | Далее: История →