При внесении исправления в более ранний коммит я должен перебазировать или добавить отдельный коммит исправления?

11

Распространенным сценарием в разработке программного обеспечения является проверка кода чужого кода. Распространенным инструментом для этого является открытие запроса на извлечение.

Мой вопрос, когда проблемы обнаружены в обзоре, должны ли изменения

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

Для первого сценария легко отслеживать инкрементные изменения, хотя это добавляет некоторый шум в историю фиксации. Второй вариант имеет обратные плюсы и минусы.

loeschg
источник
14
Вы говорите «шум» коммиту, но я читал, что это точная история . Зачем пытаться замаскировать то, что действительно произошло в истории коммитов? Обзор кода - это обзор кода, не нужно рисовать его как-то еще. Мой голос будет идти за отдельный коммит, а не за перебаз в этом случае.
Томас Стрингер
3
Обычно я делаю оба. Размещайте каждый коммит отдельно, а затем, когда обзор завершен, перебазируйте и объедините. GitHub продолжает обсуждение запроса на удаление даже после удаления или замены этих коммитов, поэтому нет существенной потери истории из-за перебазирования. Вы получаете лучшее из обоих миров.
Ajedi32
1
у меня смешанные чувства по поводу того, что если я совершил что-то, что позже определил, что это приведет к сбою системы те коммиты, если я скоро обнаружу их недостаток в моем создании, я бы хотел откатить от истории. но они всего лишь кусочки, они не стоят так дорого, поэтому, вероятно, самая безопасная, рентабельная и последовательная вещь (как в доктрине) всегда совершать отдельно и оставлять автомобильную аварию в канаве, чтобы каждый мог увидеть сейчас и навсегда. .... и вы можете пометить каждую ошибочную ветку безошибочным сообщением, чтобы не строить на нем ветку, поэтому нет общей ветки.
Роберт Бристоу-Джонсона
Можете ли вы объяснить, что такое «перебазирование» и когда я бы этого хотел?
Килиан Фот

Ответы:

23

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

Док Браун
источник