web-dev-qa-db-de.com

Git Pull vs. Pull Request

Ich bin neu mit Git, also entschuldige ich mich, wenn das trivial ist. Ich habe ein privates Repository, das mit Github und EGit eingerichtet wurde.

Um update und meinen lokalen Repository-Zweig mit der Remote-Version (im Wesentlichen ein git pull) zusammenzuführen, verwende ich Team > Pull in Eclipse.

Um merge eine Verzweigung into der Master-Verzweigung zu machen, muss ich eine Pull-Anforderung auf Github anfordern und anschließend genehmigen.

Was ist der Unterschied zwischen dem Aufruf von git pull und dem Senden einer Pull-Anforderung

Ich habe gesehen, dass dies mit einem kollaborativen Entwicklungsmodell von Fork and Pull zusammenhängt und für code reviews verwendet wird. Ich glaube, ich verstehe die Motivation und den Nutzen einer Pull-Anfrage, aber was genau ist das?

36
Jonn

Wenn Sie git pull verwenden, ziehen Sie die Änderungen aus dem Remote-Repository in Ihr.

Wenn Sie eine Pull-Anforderung an ein anderes Repository senden, bitten Sie deren Betreuer, Ihre Änderungen in ihre zu ziehen (Sie fragen mehr oder weniger sie , um einen git pull aus Ihrem Repository zu verwenden).

Wenn Sie der Verwalter dieses Repositorys sind, scheint es Ihnen ein bisschen schwieriger zu sein, indem Sie so tun, als würden Sie zwei Rollen in diesem Workflow spielen. Sie können Ihren Entwicklungszweig auch lokal in Ihren Hauptzweig einbinden und diesen Hauptzweig direkt in Ihr GitHub-Repository einfügen.

(Als Randbemerkung: Wenn Sie noch kein Git-Neuling sind, würde ich vorschlagen, git fetch und dann git merge anstelle von git pull zu verwenden. git pull ist effektiv git fetch, gefolgt von git merge, aber wenn Sie diese getrennt ausführen, können Sie potenzielle Konflikte besser steuern.)

46
Bruno

Ein pull request fordert den Verwalter eines Repositorys auf, git pull in einigen Änderungen (wie der Name schon andeutet). GitHub bietet eine zusätzliche benutzerfreundliche Oberfläche, die die Überprüfung einer solchen Anfrage vereinfacht.
Sie müssen nicht verwenden, um in einem Zweig zusammenzuführen. Aber Sie können verwenden es und es kann hilfreich sein, zu überprüfen, ob alle Änderungen bereit sind, zusammengeführt zu werden. Wenn Sie diese zusätzliche Sicherheit nicht wollen oder brauchen, können Sie einfach git merge die Branche.


git selbst hat auch einen Befehl, der eine Abrufanforderung erstellt, die für die Verwendung in Mailinglisten vorgesehen ist. Sie können die Generierung mit dem git request-pull Befehl. Tatsächlich ist es erforderlich, eine Pull-Anfrage für einige Projekte mit diesem Befehl einzureichen! Die Ausgabe des Befehls sieht ungefähr so ​​aus (übernommen von der offiziellen Git-Homepage ):

$ git request-pull Origin/master myfork
The following changes since commit 1edee6b1d61823a2de3b09c160d7080b8d1b3a40:
  John Smith (1):
        added a new function

are available in the git repository at:

  git://githost/simplegit.git featureA

Jessica Smith (2):
      add limit to log function
      change log output to 30 from 25

 lib/simplegit.rb |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
7
TimWolla

Git Pull

Remote Repo ======> lokales Repo

git pull = Git Fetch + Git Merge

Pull-Anfrage

Es ist eine Github-Sache.

Remote-Github-Repo <======== Pull-Anforderung von ===== Ihr Github-Repo

Ob der Betreuer des Remote-Github-Repos Ihre Pull-Anfrage annehmen wird oder nicht, ist ihr überlassen.

0
Asif