2015-10-17 12 views
7

Ein Benutzer erstellt eine PR mit einem einzigen Commit in meinem Repository auf GitHub.GitHub Etiquette: Wie man einen empfangenen GitHub PR mit geänderter Geschichte ff-mergeable macht?

Seit der PR wurden Änderungen an das Haupt-Repository übertragen, sodass die Zusammenführung nicht schnell vorverlegt werden konnte.

TL; DR

zog ich seinen Zweig, ein paar Mal indexiert und schob zum Ursprung, so die PR begehen nun einen anderen Hash hat, und die GitHub PR nicht automatisch in so gezogen markiert wurde

.

Long (er) version

Ich arbeitete an einem Zweig Thema und holte seinen Meister.

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

und indexiert dann auf seinen Meister Zweig

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

und indexiert sie dann auf meinen Herrn und ff-fusionierte Thema, um Ursprung zu drücken:

➜ 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 

und schob es zum Ursprung:

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

Inzwischen hat der PR-Commit einen anderen Hash und der GitHub PR hat ihn nicht aufgenommen.

Fazit

Jetzt kann ich es nicht sauber ziehen in, wie ich bereits die commit Änderungen in der Geschichte haben, nur mit einem anderen Hash.

Ich würde es vorziehen, GitHub als fusioniert zu haben, so dass es nicht erscheint, als ob ich die Änderungen zurückgewiesen habe.

Was sollte ich dem Benutzer anweisen, so zu tun, dass die PR schnell zusammengeführt werden kann?

Sollte er einfach meinen Master-Zweig ziehen?

Was kann ich in Zukunft tun, um solche Fälle sauberer zu behandeln?

Antwort

2

Githubs Pull-Requests werden niemals im Schnellvorlauf zusammengeführt. Das ist von Entwurf, so ist es klar , die die Einbeziehung dieser Commits genehmigt von einem Fremden autorisiert.

Von GitHub der Hilfe Merging a pull request:

Pull-Anfragen verschmolzen werden, um die --no-ff Option.

So können Sie die PR in einer No-ff-Weise zusammenführen, oder wählen Sie die Festschreibung und schließen Sie die PR. In beiden Fällen wird die Autorschaft intakt sein, und eine Danke Nachricht in der PR ist mehr wert als ein Merged Status für die Sicht des Beitragenden.

Wenn Sie sich entscheiden, die PR zu fusionieren, können Sie die Beitragende bitten, ihre Zweigstelle auf der aktuellen master zu rebasen, so dass die Geschichte nicht so weit auseinander geht, aber es ist vielleicht nicht wert, diese Bürokratie in den Workflow einzuführen .

eine saubere Geschichte zu halten, ist groß, aber es gibt Fälle, in denen eine saubere Geschichte ist kein lineares - versuchen Sie nicht zu über Ingenieur it :)

+0

Dank! Ich werde mir die Dokumente genauer ansehen, wenn ich ein wenig Zeit habe. – MasterAM

+0

Ich endete die manuelle Verschmelzung der Commits mit der von GitHub beschriebenen Methode (remote in einen neuen Zweig ziehen, aus Master zusammenführen, drücken). Dies bedeutet, dass 2 Commits mit demselben Inhalt (aber unterschiedlichen Hashes) in 2 verschiedenen Zweigen existieren, die zusammengeführt wurden, ohne die endgültige Version des Codes zu beeinflussen. Danke für die Tipps! – MasterAM