Команды Git

git commit

git commit: зафиксировать изменения в репозитории.

Команда git commit сохраняет внесённые изменения в репозиторий. После того как правки добавлены в область подготовки (staging area) с помощью git add, команда git commit окончательно записывает их в историю репозитория. При создании коммита Git делает снимок подготовленных изменений на текущий момент. Этот снимок позволит позже вернуться к этой версии, сравнить её с другими версиями или поделиться кодом с коллегами.

Каждый коммит содержит текущее состояние области подготовки, информацию об авторе изменений и участнике, создавшем коммит, дату и сообщение (commit message), в котором можно описать, что именно было сделано. Всё это позволяет шаг за шагом отслеживать историю проекта.

Коммиты — это базовые кирпичики истории версий в Git. Каждый коммит — это конкретная точка в истории проекта, а цепочка коммитов отражает, как проект развивался с течением времени. Если оставлять к коммитам понятные сообщения, получится отличная документация: что изменилось, когда и зачем. Это сильно упрощает командную работу и понимание истории.

Примеры

Закоммитить подготовленные изменения с указанным сообщением:

git commit -m "Add login feature"

Закоммитить подготовленные изменения, а сообщение написать в текстовом редакторе по умолчанию:

git commit

Добавить все текущие изменённые файлы и сразу закоммитить их:

git commit -a -m "Refactor codebase for better performance"

Перезаписать последний коммит (например, чтобы исправить ошибку в сообщении коммита или в самих изменениях):

git commit --amend -m "Corrected typo in previous commit"

Если очень нужно добавить кавычку прямо внутрь сообщения, можно поставить перед ней обратную косую черту (\), чтобы её экранировать. Экранирование (escaping) в консоли лишает символ его особых суперсил и превращает в обычный текст (в нашем случае «особая суперсила» — это закрытие строки). Другой вариант — обернуть само сообщение в одинарные кавычки. Например:

git commit -m "This is a \"message\""

ИЛИ

git commit -m 'This is a "message"'