Перейти к основному содержимому

Запись изменений в репозиторий

Команда git commit

Создает новый коммит с файлами из индекса.

Документация здесь.

Основы работы с Git предполагают понимание коммитов. Команда git commit откроет текстовый редактор для ввода сообщения коммита. Также эта команда принимает несколько аргументов:

  • -m позволяет написать сообщение вместе с командой, не открывая редактор. Например git commit -m "Пофиксил баг";
  • -a переносит все отслеживаемые файлы в область подготовленных файлов и включает их в коммит (позволяет пропустить git add перед коммитом);
  • --amend заменяет последний коммит новым изменённым коммитом, что бывает полезно, если вы неправильно набрали сообщение последнего коммита или забыли включить в него какие-то файлы.
Ловушка git commit

По умолчанию команда git commit откроет Vim, из которого выход найти сложно 😈.

Как выйти из Vim можно найти здесь.

Советы для эффективного введения в Git:

  • Коммитьте как можно чаще.
  • Одно изменение — один коммит: не помещайте все не связанные между собой изменения в один коммит, разделите их, чтобы было проще откатиться.
  • Формат сообщений: заголовок должен быть в повелительном наклонении, меньше 50 символов в длину и должен логически дополнять фразу this commit will ___ (this commit will fix bugs — этот коммит исправит баги).
  • Сообщение должно пояснять, почему был сделан коммит, а сам коммит показывает, что изменилось.
  • Если у вас много незначительных изменений, хорошим тоном считается делать небольшие коммиты при разработке, а при добавлении в большой репозиторий объединять их в один коммит (про сжатие коммитов читайте здесь).

Запишем изменения для нашего примера:

git commit -m "Добавил README"

Результат:

[main (root-commit) 02c9b2c] Добавил README
1 file changed, 1 insertion(+)
create mode 100644 README

А так выглядит наш коммит GitKraken:

Первый коммит

Важно не просто коммитить, но и блюсти формат сообщений

Хорошая древняя статья на тему того КАК нужно писать сообщения к коммитам тут.

Атрибуция

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