С dvcs/git, является ли одиночная фиксация предпочтительной для нескольких небольших, тематических коммитов?

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

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

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

Ответ 1

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

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

Ответ 2

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

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

  • Простая проверка кода
  • git bisect для правильной работы

Ответ 3

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

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