Как лучше исправлять коммит с незаполненным комментарием?

«Как лучше исправлять коммит с незаполненным комментарием?» — вопрос из категории Git, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Если я случайно сделал коммит с пустым или некорректным сообщением, я исправляю его с помощью команды git commit --amend. Это перезаписывает последний коммит.

Последовательность действий:

  1. Убедиться, что коммит еще не был отправлен в удаленный репозиторий (git push). Если он уже отправлен, лучше создать новый коммит с исправлением, чтобы не переписывать историю.
  2. Если коммит локальный, выполнить:
    git commit --amend -m "feat(api): добавить валидацию входных данных"
  3. Если нужно также изменить состав файлов в последнем коммите, можно сначала добавить изменения (git add), а затем выполнить --amend.

Для предотвращения таких ситуаций в будущем в команде мы настраиваем pre-commit хуки (например, с помощью husky или native Git hooks), которые проверяют, что сообщение коммита соответствует соглашению (например, Conventional Commits) и не пустое.

Пример простого pre-commit hook (.git/hooks/commit-msg):

#!/bin/sh
# Проверяем, что сообщение коммита не пустое и длиннее 10 символов
if [ -z "$(sed '/^#/d' "$1")" ] || [ $(wc -m < "$1" | xargs) -lt 10 ]; then
  echo "Ошибка: сообщение коммита должно быть непустым и содержательным." >&2
  exit 1
fi