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

пользователь создал PR с одной фиксацией в моем репозитории на GitHub.

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

TL; DR

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

длинная (er) версия

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

* 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>

а затем перебазировал его на мой мастер и FF-объединенную тему, чтобы подтолкнуть к origin:

➜  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>

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

вывод

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

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

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

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

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

1 ответов


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

С помощью GitHub слияние запроса на вытягивание:

запросы Pull объединяются с помощью .

таким образом, вы можете объединить PR в no-ff способом, или вишневый выбрать фиксацию и закрыть PR. В обоих случаях авторство будет цел и невредим, а спасибо сообщение в PR стоит больше, чем Merged статус точки зрения участника.

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

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