Этикет GitHub: Как сделать полученный GitHub PR с измененной историей ff-mergeable?

Пользователь создал пиар с одним коммитом в моем репозитории на GitHub.

Начиная с пиара, изменения были перенесены в основной репозиторий, поэтому слияние не могло быть ускорено.

TL; DR

Я вытащил его ветку, пару раз перебазировал и выдвинул на исходный уровень, так что коммит PR теперь имеет другой хеш, и GitHub PR не был автоматически помечен как извлеченный.

Длинная версия

Я работал над темой ветки и взял своего хозяина.

* 5977cb4 - (user/master) PR <user>
| * 857775e - (HEAD -> topic) topic commeit. <me>
| | * 871201e - (master) Local changes in master <me>
| |/  
| * f648f4e - (origin/master) Changes in origin <me>
|/  
* 3461bd2 - Initial commit <me>

а потом перебазировал на свою главную ветку

➜  local git:(topic) git rebase user/master
First, rewinding head to replay your work on top of it...
Applying: Changes in origin
Applying: topic commeit.

* 1e2fe2e - (HEAD -> topic) topic commeit. <me>
* 1c7caa9 - Changes in origin <me>
* 5977cb4 - (user/master) PR <user>
| * 871201e - (master) Local changes in master <me>
| * f648f4e - (origin/master) Changes in origin <me>
|/  
* 3461bd2 - Initial commit <me>

а затем перебазировал его на тему master и ff-merged, чтобы перейти к оригиналу:

➜  local git:(topic) git rebase master
First, rewinding head to replay your work on top of it...
Applying: PR
Applying: topic commeit.

➜  local git:(topic) git checkout master
Switched to branch 'master'
➜  local git:(master) git merge topic
Updating 871201e..836e09d
Fast-forward

И подтолкнул его к происхождению:

* 836e09d - (HEAD -> master, origin/master, topic) topic commeit. <me>
* 46e591a - PR <user>
* 871201e - Local changes in master <me>
* f648f4e - Changes in origin <me>
| * 5977cb4 - (user/master) PR <user>
|/  
* 3461bd2 - Initial commit <me>

к настоящему моменту пиар-коммит имеет другой хеш, и GitHub PR не поднял его.

Заключение

Теперь я не могу точно это сделать, поскольку у меня уже есть изменения коммита в истории, только с другим хешем.

Я бы предпочел, чтобы GitHub помечал его как объединенный, чтобы он не выглядел так, как будто я отклонил изменения.

Что я должен поручить пользователю сделать так, чтобы PR быстро переместился с возможностью слияния?

Должен ли он просто потянуть мою главную ветку?

Что я могу сделать в будущем для более аккуратного обращения с такими случаями?

1 ответ

Решение

Запросы Github Pull никогда не объединяются в ускоренном режиме. Это по замыслу, поэтому четко указано, кто одобрил включение тех коммитов, написанных незнакомцем.

Из справки GitHub Слияние запроса на удаление:

Запросы на извлечение объединяются с использованием --no-ff вариант.

Таким образом, вы можете объединить PR без всяких усилий или просто выбрать коммит и закрыть PR. В обоих случаях авторство останется без изменений, а сообщение " Спасибо" в пиаре стоит больше, чем Merged статус для точки зрения вкладчика.

Если вы решите объединить PR, вы можете попросить участника перебазировать ее ветку поверх текущей master поэтому история не сильно расходится, но, возможно, не стоит вводить эту бюрократию в рабочий процесс.

Сохранять чистую историю - это здорово, но есть случаи, когда чистая история не является линейной - не пытайтесь ее перегрузить:)

Другие вопросы по тегам