Commit
Commit (коммит) — сохранение изменений в системе контроля версий (например, Git). Каждый коммит фиксирует текущее состояние файлов проекта — код, документацию, конфигурации — и добавляет их в историю изменений.
Проще говоря, коммит — это моментальный снимок проекта (snapshot), который позволяет откатиться к предыдущему состоянию или проанализировать, кто и что изменил.
Что такое коммит
Коммит — это действие, с помощью которого разработчик сохраняет изменения в локальном репозитории. Каждый коммит сопровождается сообщением (commit message), в котором кратко описывается, что было сделано — например, добавлена новая функция, исправлена ошибка или обновлена документация.
Пример: «Добавлена форма регистрации» или «Исправлена ошибка отображения кнопки на мобильных устройствах».
Как выглядит коммит в Git
Каждый коммит имеет уникальный идентификатор (хэш SHA-1), автора, дату и сообщение. Пример вывода в консоли:
commit 7a3b4c9d1ef2a4f6b0e4e93b9c8f3e0c56df7d9a
Author: Ivan Petrov <ivan.petrov@example.com>
Date: Mon Nov 4 10:25:18 2025 +0300
Добавлен модуль авторизации и обновлена логика входа
Этот хэш позволяет точно отследить, кто, когда и какие изменения внёс в проект.
Как сделать коммит
Процесс коммита в Git обычно включает три шага:
- Добавить файлы в индекс (staging area):
git add .
или выборочно:
git add src/login.js
- Создать коммит с описанием изменений:
git commit -m «Добавлена валидация формы входа»
- (Опционально) Отправить коммит в удалённый репозиторий:
git push origin main
Структура коммита
| Поле | Описание |
| Хэш (hash) | Уникальный идентификатор коммита |
| Автор (author) | Имя и email разработчика |
| Дата (date) | Время создания коммита |
| Сообщение (message) | Краткое описание изменений |
| Изменённые файлы | Список файлов, которые были затронуты |
Пример нескольких коммитов
* 9a17b23 — Добавлена кнопка «Купить» на карточке товара
* 8b13e54 — Исправлена ошибка отображения корзины
* 5c24d87 — Добавлен компонент Header
* 1a91f12 — Инициализация проекта
Каждый коммит образует цепочку, из которой строится история проекта.
Можно перемещаться между состояниями и откатывать изменения при необходимости.
Виды коммитов
| Тип | Пример сообщения | Назначение |
| feat | feat: добавлен фильтр по категории | новая функция |
| fix | fix: исправлена ошибка авторизации | исправление бага |
| refactor | refactor: оптимизирован код API | улучшение структуры кода |
| docs | docs: обновлена документация | изменения в документации |
| style | style: правки форматирования | форматирование, без изменений логики |
| test | test: добавлены юнит-тесты | добавление или обновление тестов |
| chore | chore: обновлены зависимости | служебные изменения (конфиги, сборка) |
Такие соглашения описаны в стандарте Conventional Commits — они помогают автоматизировать релизы и changelog.
Лучшие практики оформления коммитов
- Пишите короткие и понятные сообщения. Хорошее сообщение — до 50 символов, в повелительном наклонении:
«Добавить валидацию формы», «Исправить ошибку фильтра».
- Делайте коммиты логически связанными. Каждый коммит должен решать одну задачу — проще проверять и откатывать.
- Не коммитьте временные или ненужные файлы. Добавьте их в .gitignore.
- Проверяйте код перед коммитом. Используйте git diff или git status, чтобы убедиться, что всё нужное включено.
- Добавляйте описание в теле коммита, если изменений много:
git commit -m «Добавлена авторизация через Google» -m «Добавлен OAuth2, обновлён роутинг, исправлены тесты»
Отмена и исправление коммитов
| Команда | Действие |
| git commit —amend | изменить последний коммит (сообщение или файлы) |
| git reset HEAD~1 | отменить последний коммит, сохранив изменения в коде |
| git revert <hash> | создать новый коммит, отменяющий изменения предыдущего |
| git log | просмотр истории коммитов |
Важно: изменять коммиты, уже отправленные на сервер, нужно осторожно — это может вызвать конфликты у других разработчиков.
Коммиты и Pull Request
Коммиты — основа Pull Request (PR). Когда разработчик создаёт PR, он фактически предлагает объединить свои коммиты в основную ветку. Качественные, атомарные коммиты с понятными сообщениями помогают ревьюерам быстро понять суть изменений и упростить процесс проверки.
Пример рабочего процесса (workflow)
git checkout -b feature/add-search
# … работа над кодом …
git add .
git commit -m «feat: добавлен поиск по сайту»
git push origin feature/add-search
# Создание Pull Request на GitHub
После одобрения PR коммит становится частью основной ветки (main).
Итог
Commit — это базовый элемент истории проекта, который фиксирует изменения и позволяет управлять развитием кода. Хорошо оформленные коммиты делают проект прозрачным, позволяют быстро находить ошибки и отслеживать эволюцию функционала.

