Какая практика git commit лучше?
Я искренне верю, что иметь один коммит по одному вопросу - хорошая практика. Я'я уверен, что я прочитал это где-то в статье, как «Лучшие практики".
Таким образом, мой рабочий процесс был следующим:
Для нового выпуска я создаю новую локальную ветку с.git checkout -b new-issue
Зафиксируйте все изменения в нем. Иногда это включаетмного коммитов.Когда я закончуsquash
совершает иrebase
их в текущую тематическую ветку.Если что-то пойдет не так, я могуgit revert
зафиксировать, найти ошибку, исправить ее и зафиксировать новый патч в тематической ветке. Я выиграл'изменить удаленное хранилищеисторияНо сегодня я был удивлен, услышав следующий рабочий процесс:
Создайте новую ветку для нового выпуска.Передайте все в это.использованиеmerge --no-ff
объединить ветку выпуска с тематической веткой (поэтому мыбудет иметьсливаться фиксации» что мы можемrevert
).Если что-то пойдет не так, мы можем использоватьgit bisect
найти ошибку.Согласно 1-му подходу, мыЯ буду иметь чистую историю git и не буду знать о ветвях, используемых во время разработки.
Согласно второму подходу, мыУ меня будет очень грязная история, с большим количеством уродливых, ненужных слияний и коммитов только для одной проблемы. Тем не менее, мы можем использоватьgit bisect
чтобы найти ошибки. (Возможно, это лучше для рефакторинга?)
Какие плюсы и минусы вы видите для обоих подходов?
Какой подход вы используете и почему?
На практике вы использовалиgit bisect
найти ошибки? (У меня нет ...)