2012-11-27 6 views
33

Kann eine Pull-Anfrage geändert werden, die jemand anderes gestartet hat?Multi-User Github Pull Requests

Angenommen, ich behalte Projekt X, und Benutzer A hat mir eine Pull-Anforderung gesendet. Es gibt einige Dinge, die ich vor dem Zusammenführen ändern möchte und die ich schnell selbst machen kann. Wie kann ich das einfach machen und alles in einer PR halten?

Ist das überhaupt möglich?

Antwort

23

Sie können wie folgt tun es mehr Commits zu diesem Pull-Anforderung hinzu:

In Ihrem Repo,

git checkout -b new-branch 

Dann ziehen Sie die Commits von Benutzer A in Ihren neuen Zweig:

git pull git://github.com/[User A]/[project-name].git 

Danach können Sie es ändern, was auch immer Sie im neuen Zweig mögen. Und wenn Sie mit Ihren Änderungen testen und erfüllen, können Sie es in Ihren Master-Zweig zusammenführen:

git checkout master 
git merge new-branch 

OK, jetzt können Sie Ihren Code mit Benutzern A und die Änderungen zu haben.

+1

Was ist, wenn Sie nicht den Master-Zweig des Benutzers, sondern einen anderen Zweig im Baum ziehen möchten? http://stackoverflow.com/questions/1709177/git-pull-certain-branch-from-github – netpoetica

+4

Branch Name ist optional zweites Argument zu 'git pull' – Loren

+4

Ich denke' 'git fetch upstream ziehen//head: '' ist besser als Git Pull, um PRs zu ziehen. –

-3

Es ist möglich! Alles, was Sie tun müssen, überprüfen Sie den Zweig, der in ihrer Pull-Anforderung ist, und nehmen Sie die gewünschten Änderungen vor. Nachdem Sie diese Änderungen übernommen und übertragen haben, sollten sie in der Pull-Anforderung in Github widergespiegelt werden.

+3

Für zukünftige Leser: Wenn ich mich nicht irre, können Sie dies nur tun, wenn der Zweig im Haupt-Repository ist. Versuchen Sie, 'contributor/feature' in' original/master' als Eigentümer von 'original/master' zu mischen - Sie können nicht zu' contributor/feature' wechseln, es sei denn, 'contributor' - die Person, die die PR übermittelt wenn Sie Push-Zugriff auf sein Repository haben. –

3

Angenommen, Sie haben gelesen und Zugriff auf das Github-Repository des Benutzers geschrieben, können Sie auf den Zweig drücken, von dem die Pull-Anforderung kommt.

Es ist auf der Unterseite der Pull-Anforderung vor der MERGE PULL REQUEST-Taste.

Sie können durch Drücken auf den XXXXX Zweig auf yyyy/zzzzz

0

Nicht möglich, aber Sie können eine zweite Pull-Anforderung an ihre Verzweigung senden, die die ursprüngliche Pull-Anforderung aktualisieren würde, wenn sie sich entscheiden, sie zusammenzuführen.

1

Leider nein, nicht die folgenden nicht:

git push -f upstream my-updates:refs/pull/999/head ... ! [remote rejected] my-updates -> refs/pull/999/head (deny updating a hidden ref) error: failed to push some refs ...

+0

In der Tat. Dieses Verhalten wird in der Github-Dokumentation beschrieben: https://help.github.com/articles/checking-out-pull-requests-locally/#modifying-an-inactive-pull-request-local – waldyrious

8

Ich weiß, das eine alte Frage, aber GitHub hat vor kurzem einige neue Features, die es möglich machen, um tatsächlich eine Pull-Anforderung zu aktualisieren eingereicht von einem anderen Benutzer.

Wenn Sie eine neue Pull-Anforderung erstellen, wird ein Kontrollkästchen mit der Bezeichnung "Bearbeitung von Maintainern zulassen" angezeigt. Dies ist standardmäßig aktiviert.

In diesem Ort, mit jedem Zugriff auf das Repository, das die Anforderung Ziel Ihrer Pull ist in der Lage, auch Änderungen an den Zweig der Ihre Repository zu schieben, dass der Ursprung der Pull-Anforderung ist.

Dies ist besonders nützlich in Teamumgebungen, in denen jeder Zugriff auf das "Haupt" -Repository hat, aber alle Arbeiten werden an Feature-Verzweigungen in einzelnen Gabeln ausgeführt.Dies bedeutet, dass bei einer offenen Pull-Anforderung, die einige Änderungen erfordert und der primäre Autor nicht verfügbar ist, eine andere Person im Team die erforderlichen Aktualisierungen direkt vornehmen kann, anstatt die vorhandene PR zu schließen und eine neue zu öffnen.

Verwandte Themen