С dvcs / git, является ли предпочтительным один коммит по сравнению с несколькими маленькими тематическими коммитами? - PullRequest
4 голосов
/ 18 августа 2011

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

Я работаю над небольшим проектом, в котором я на данный момент являюсь единственным разработчиком. Я привыкаю к ​​использованию Git, поэтому я задаюсь вопросом о лучших практиках. По мере того, как я реализую новые функции / функции, я обнаруживаю, что работаю сразу с несколькими файлами, их примерами и документацией, так что в моем состоянии git может отображаться 15 файлов, которые изменились. Но эти файлы могут относиться к 3 различным частям проекта.

Лучше ли фиксировать их в 3 отдельных части, сохраняя связанные файлы вместе, чтобы позже я мог вернуться назад и легче найти эти коммиты. Или так же просто передать их сразу с соответствующим сообщением?

Ответы [ 3 ]

7 голосов
/ 18 августа 2011

Желательно, чтобы коммиты были атомарными. То есть фиксация представляет собой одно логическое изменение в рассматриваемом проекте и может стоять самостоятельно.

Это позволяет

  1. Простая проверка кода
  2. git bisect для правильной работы
4 голосов
/ 18 августа 2011

Один критерий, который может помочь вам сделать правильную «сумму» коммита, это git bisect или git blame: большой коммит будет неприятен при попытке git bisect, чтобы обнаружитьошибка?

Это то, что описывает сообщение в блоге " Понимание рабочего процесса Git ", когда оно описывает "фиксация с помощью контрольной точки" (слишком мало коммитов, захвата кода в нестабильном состоянии), или "no-ff commits "(что представляет слишком много модификаций, объединенных в один большой коммит).

2 голосов
/ 18 августа 2011

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

  1. отдельные задачи - используйте несколько кратковременных отдельных ветвей, по одной на каждую. Вы всегда можете сжать последовательность коммитов перед последним слиянием и публикацией в более старшей ветви.
  2. совершайте часто - меньшие шаги облегчают поиск, где ошибки произошли и почему, и выравнивание слияний. Снова вы можете раздавить после того, как это сработает.
  3. используйте область подготовки и git stash для разбиения работы, которую вы размещаете в каждом коммите.
  4. Не волнуйтесь слишком сильно о незначительных скачках. Предвидение происходит только в том случае, если вы идете задом наперед ..
...