Описание тега commit

Вопросы о фиксации транзакции или "единицы работы" в базе данных, приложении или системе контроля версий.

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

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

В контексте программного обеспечения для контроля версий фиксируемая"единица работы" - это полное изменение, записываемое в центральное хранилище. Обычно "фиксация" относится к команде, используемой для выполнения этого действия (например,git commit или svn commit).

Природа разных систем управления версиями приводит к разным стилям коммитов. Однако, как правило, существуют две согласованные практики:

  1. Зафиксируйте только отдельные единицы работы (исправление одной ошибки, добавление одной функции и т. Д.) - это упрощает просмотр истории. И наоборот, избегайте крупных и масштабных коммитов, которые загрязняют историю.

  2. Сообщения о фиксации должны быть достаточно краткими и ясными. Это позволяет понять, кто что сделал (обычно это делается с помощью такой команды, какblame) Полегче. Эта практика является продолжением первой, потому что для отдельных единиц работы легче писать четкие сообщения о фиксации.

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

Распределенные системы, такие как Git, как правило, менее строги в отношении того, что фиксируется, потому что именно автор выбирает, когда отправлять коммиты в удаленный репозиторий, и может запускать наборы тестов, прежде чем принимать решение о внесении изменений; Кроме того, любые ошибки можно исправить, отредактировав личную историю.