Мы все видели это … Вы работаете над проектом, и он использует Git для контроля версий. Вы только что закончили вносить изменения и хотите быстро обновить свой бренч. Итак, вы открываете свой терминал, и с помощью нескольких быстрых команд вы обновляете свою удаленную бренч своими изменениями.

git add .
git commit -m "added new feature"
git push

Но затем вы проводите небольшое тестирование и обнаруживаете, что в вашей коде есть ошибка.

Не беспокойтесь — вы быстро найдете решение и сделаете еще один коммит для решения проблемы.

git add .
git commit -m "fix bug"
git push

В конце концов, только вы работали над этим проектом, и вы можете легко объяснить, над чем работали — даже если сообщения не ясно объясняет это.

Проблема

Прошло несколько месяцев, и теперь другой разработчик просматривает сделанные вами изменения.

Они пытаются понять подробности ваших изменений, но поскольку сообщения о фиксации непонятно, они не могут ничего понять.

Затем они прибегают к чтению различий каждого коммита. Однако даже после этого они по-прежнему не могут определить мыслительный процесс, стоящий за выбором, который вы сделали в своей реализации.

Теперь, так как разработка программного обеспечения является совместным процессом и существует операция git blame, они выясняют, кто внес эти изменения, и начинают задавать вам вопросы о вашей реализации.

Однако, так как это было так давно, вы мало что помните. Вы проверяете свои коммиты и больше не помните логику решений о реализации, принятых в этом проекте.

Вы посылаете своему коллеге грустные смайлики в Slack (😔) и говорите им, что вы не можете предоставить больше информации, чем они уже имеют.

Написание хороших коммитов

Надеемся, что описанная выше ситуация продемонстрировала, почему важно писать хорошие, информативные сообщения git commit.

В области совместной работы, такой как разработка программного обеспечения, крайне важно, чтобы мы упростили сотрудникам быстрое ознакомление с контекстом нашей работы.

В идеале, хорошее сообщение коммита должно быть структурировано на три части — тема, тело и заключительная строка.

Тема

Тема должна быть единственной строкой, которая суммирует изменения вашего коммита.

Оно должно начинаться с заглавной буквы, не заканчиваться точкой и содержать не более 50 символов.

Хорошая тема будет начинаться так: «Этот коммит будет…».

Хорошее сообщение о коммите, например, «добавить новую модель нейронной сети в бэкэнд», хорошо завершает предложение.

Плохой коммит, такое как «fix bug», не очень хорошо завершается, создавая странное предложение «Этот коммит будет исправит ошибку».

Тело

В теле содержится содержание вашего сообщения, и вы можете подробно рассказать о своих изменениях. Обратите внимание, что для некоторых очень маленьких коммитов, таких как исправление опечатки, вам, вероятно, не понадобится тело, поскольку строка темы должна быть достаточно информативной.

В теле вы должны написать больше деталей об изменениях, которые вы делаете, и объяснить контекст того, что вы делаете.

Вы можете объяснить, почему вы делаете эти изменения, почему вы решаете применить эти изменения именно таким образом, и что-нибудь еще, что могло бы помочь людям понять мыслительный процесс, стоящий за вашим коммитом.

Постарайтесь не повторять то, что очевидно из изменений кода в diff. Нет необходимости предоставлять построчное объяснение ваших изменений. Сосредоточьтесь на более подробных деталях, которые могут быть неочевидны при чтении кода. В конечном итоге цель состоит в том, чтобы обеспечить контекст в процессе развития вокруг этого изменения, что в первую очередь касается его мотивации и целей.

Заключительная строка

Наконец, заключительная строка является последней строкой вашего сообщения о коммите.

Здесь вы можете поместить полезные метаданные, касающиеся вашего коммита, такие как номера билетов JIRA, номера выпусков GitHub, имена соавторов и дополнительные ссылки.

Это может помочь связать вместе важную информацию, касающуюся ваших изменений.

About the Author

Ergashev Lazizbek

Добрый день, дорогие мои читатели, позвольте мне рассказать вам немного о себе. Я Лазизбек Эргашев, я веб-разработчик из Узбекистана. В основном я использую laravel/php для бэкэнда и vuejs/javascript для фронтэнда. Основная цель моего блога - поделиться с вами своим опытом и знаниями.

View All Articles