Описание тега commit
Обычный контекст этого тега - это транзакции приложения и / или базы данных, но он также применим к программному обеспечению для контроля версий.
В контексте приложения / базы данных фиксация означает, что все изменения состояния, сделанные во время текущей транзакции, становятся постоянными.
В контексте программного обеспечения для контроля версий фиксируемая"единица работы" - это полное изменение, записываемое в центральное хранилище. Обычно "фиксация" относится к команде, используемой для выполнения этого действия (например,git commit
или svn commit
).
Природа разных систем управления версиями приводит к разным стилям коммитов. Однако, как правило, существуют две согласованные практики:
Зафиксируйте только отдельные единицы работы (исправление одной ошибки, добавление одной функции и т. Д.) - это упрощает просмотр истории. И наоборот, избегайте крупных и масштабных коммитов, которые загрязняют историю.
Сообщения о фиксации должны быть достаточно краткими и ясными. Это позволяет понять, кто что сделал (обычно это делается с помощью такой команды, как
blame
) Полегче. Эта практика является продолжением первой, потому что для отдельных единиц работы легче писать четкие сообщения о фиксации.
Помимо этих двух рекомендаций, большая часть рабочего процесса определяется тем, насколько распределена система контроля версий. Вообще говоря, то, что входит в централизованную систему вроде Subversion, контролируется гораздо более строго, потому что отменить ее сложнее; большинство коммитов в централизованной системе связано с запуском всего набора тестов проекта.
Распределенные системы, такие как Git, как правило, менее строги в отношении того, что фиксируется, потому что именно автор выбирает, когда отправлять коммиты в удаленный репозиторий, и может запускать наборы тестов, прежде чем принимать решение о внесении изменений; Кроме того, любые ошибки можно исправить, отредактировав личную историю.