Правильно ли попросить участников перебазировать их запросы на получение на github?

25

Я поддерживаю относительно популярное GitHub-репо.

Когда запрос на объединение подходит для слияния, я обычно прошу автора преобразовать его в один коммит, прежде чем объединить его (особенно, когда было несколько небольших правок).

Это хорошая практика мерзавцев? Это приемлемый / стандартный этикет GitHub?

Итак, некоторые преимущества:

  • Я получаю хорошую чистую историю коммитов в логах коммитов
  • Мне не нужно менять коммит сам
  • Он делегирует часть работы

Некоторые возможные недостатки:

  • Я не уверен, что это хороший этикет
  • Я не уверен, если это хорошая практика мерзавца
  • Я обычно уже просил о нескольких других изменениях - это еще одно, и я не хочу отговаривать авторов.
Pablojim
источник
1
Можете ли вы описать некоторые преимущества и недостатки, которые вы видите при выполнении этого процесса?
Алекс Фейнман
1
Некоторые дополнительные преимущества и недостатки заслуживают рассмотрения. хорошо: git-bisect и другие аннулирования проще, когда каждый коммит создает компилируемое или иным образом завершенное состояние, и этот подход является простым способом гарантировать это. плохо: небольшие изменения с простыми сообщениями коммита переходят в мега коммиты. Например, «Изменена эта строка, чтобы исправить случайный угол», может быть добавлено «Добавление функции foo, большой список изменений ». Это затрудняет поиск причины конкретного изменения.
Gankro
1
Ничего плохого в установлении стандартов. Просто проясните заранее, что ожидается. Пример: symfony.com/doc/current/contributing/code/patches.html Прокрутите вниз до шага 3. Отправьте свой патч
Cerad
6
@Granko: «Rebase» и «rebase в один коммит» - это две разные проблемы.
Мэтью Шарли
2
Если участников просят сделать это, они должны перезаписать ветвь запроса на получение git push -f?
Flimm

Ответы:

16

Что касается Git, то это священная война, нужно ли вам просто слить ветки или переназначить коммиты в последней версии ветки, в которую вы сливаетесь. Есть много разговоров о том, что лучше, если вы сделаете быстрый поиск на Programmers.SE .

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

Кроме того, для GitHub (как минимум), в частности, они будут отображать ссылку на ваш CONTRIBUTINGфайл перед любыми попытками PR, так что это хорошее место, чтобы наметить ваши ожидания, и многие проекты включают в себя, что они будут объединять только современные ветки.

Мэтью Шарли
источник
+1 за привнесение прагматизма в дискуссию. Да, в этом весь смысл. Может быть довольно сложно разрешать сложные конфликты в больших запросах, особенно когда задействовано определенное количество коммитов. Это та точка, в которой первоначального автора следует попросить вмешаться. Легкие конфликты не являются проблемой, они никогда не были и никогда не будут.
JensG
1
+1 за фактически предоставленный ответ, а не только комментарии!
Паблоим