2016-05-19 9 views
2

Lassen Sie uns sagen, dass ich eine Gabel eines Repo haben, und meine Repo hat drei Zweige:Git-Pull-Anfragen subbranch der Niederlassung beteiligt

  • Master
  • branch_1
  • branch_1_a

branch_1 ist aus upstream/master, aber branch_1_a ist aus branch_1 (dh es wurde über git checkout -b branch_1_a branch_1 erstellt)

Wie funktionieren Pull-Anforderungen in diesem Szenario, wenn ich z. B. eine Pull-Anforderung für die Änderungen in branch_1 erstellen möchte und auch eine Pull-Anforderung für die Änderungen in branch_1_a. Muss ich zuerst ein PR erstellen, um branch_1_a in branch_1 zu verschmelzen? Oder erstelle ich PR für branch_1, habe das in upstream/master zusammengeführt, und dann erstellen Sie eine PR für branch_1_a? Oder kann ich eine PR für jeden gleichzeitig in Master haben (obwohl ich mir nicht vorstellen kann, wie das funktionieren würde)?

Antwort

1

vor allem git kennt keine "Pull-Anfragen" (das ist ein Konzept von Diensten wie gitlab, github, bitbucket, ...). stattdessen git kennt verbindet.

ein Pull-Anfrage ist nur eine Möglichkeit, jemanden verantwortlich zu sagen, dass Sie git merge einen Zweig mit einem anderen möchten.

Sekunde, ein Zweig ist wirklich nur eine Bezeichnung, die Sie zu einer Reihe von Patches geben.

jetzt, um Ihre Frage zu beantworten: Ja, es ist vollständig möglich, Merge Filialen und Nebenstellen.

im einfachsten Fall, branch_1_a enthält die Gesamtheit der branch_1 (das heißt: alle Commits, die in branch_1 sind, sind auch in branch_1_a).

, wenn Sie zuerst branch_1_a fusionieren, dann branch_1 Verschmelzung wird zu einer no-op (seit Ihrem master jetzt bereits enthält branch_1).

, wenn Sie zuerst fusionierenbranch_1, dann verschmelzen branch_1_a einfach die zusätzlichen Patches hinzufügen, die branch_1 anders branch_1_a machen.

+0

Während das stimmt, ist es eine streng git Sicht. Das Zusammenführen der Änderungen ist nicht unbedingt ein Problem, aber die Pull-Anforderung sauber zu halten _ kann _ sein.Wenn Sie Branch_1_a Pull-Anforderung relativ zu Branch_1 abschließen, enthält die Pull-Anforderung von Branch_1 ein Update, das alle Branch_1_a-Änderungen enthält, was sich für mich als falsch erweist, da jetzt die Pull-Anforderung von Branch_1 größer als ursprünglich vorgesehen ist. – Sam

0

die Gabel Angenommen, Sie beziehen sich auf einige gehosteten git Dienst wie Github oder bitbucket zu vorhanden ist, sollten Sie in der Lage sein, die Zusammenführung von branch_1_a in branch_1 in Ihrem lokalen Klon der Gabel durchzuführen und dann branch_1 auf der Fernbedienung drücken gabel repo, nach dem Sie eine PR für branch_1 gegen das Repo öffnen können, von dem Sie ursprünglich gegabelt haben.

Verwandte Themen