Этикет для редактирования чьего-либо пул-запроса


19

У меня есть репозиторий на GitHub, в который кто-то отправил запрос на удаление с одним единственным коммитом. Я только хочу реализовать его решение частично и использовать около половины изменений кода, сделанных пользователем. Что мне делать в этой ситуации?

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

Скопируйте и вставьте код, который я хочу сохранить от его коммита, в новый коммит . Это означает, что он не получает кредит за его ценный вклад в код.

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


1
Помните, что git различает «автора» и «коммиттера». Поэтому, когда вы переписываете их коммиты, чтобы они содержали только то, что вы на самом деле хотите, они все равно будут считаться авторами. А ты коммиттер.
Ян Худек

Ответы:


36

Я бы выбрал вариант 4: объяснить участнику, почему его запрос на извлечение не соответствует целям проекта (и в процессе дать участнику возможность объяснить, почему он считает, что это так ), и попросить его повторно представить новую версию, содержащую только те изменения, которые соответствуют проекту.

Это имеет три преимущества:

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

3
Классический пример социального решения технического вопроса.
Пол
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.