2017-07-24 4 views
1

Ich erstelle einen neuen Zweig (pj2/new-register-feature) von [dev-project2] Zweig und ich erstellt eine Pull-Anfrage zu [dev-project2] Zweig. (Aufforderung 1).Git und Management Rebase von Zweigen

Und dann lass uns die Aktion rebase [dev-project2] auf [dev-project1] fortsetzen und den force-Zweig [dev-project2] nach der Rebase drücken.

Aber wenn ich [Pull Request 1] wie oben beschrieben überprüfe, wurde eine Menge Commit auf [Pull Request 1] nach Rebased [Dev-Projekt2] zu [Dev-Projekt1] Zweig durchgeführt.

So Können Sie mir helfen, es zu erklären und wie zu aktualisieren [Pull-Anforderung 1] nur um zu sehen, begehen von [PJ2/new-registry-Feature] die Anfrage Pull erstellen

+0

Ich löste es. Es ist einfach zu lösen. Setzen Sie [pj2/new-registry-feature] nur auf den Zweig [dev-project2] um. Aber können Sie mir helfen, erklären Sie es über Bildgraph der Branche für dieses Problem. Vielen Dank – maolddv

Antwort

3

Hier ist, wie ich Ihre Frage verstanden (bitte lassen Sie mich wissen, wenn ich etwas verpasst):

Sie haben von:

--A--B--C--D--E--F--G--H <- dev-project1 
     \ 
     \-c--d--e--f--g <- dev-project2 
       \ 
       \-p--q--r <- pj2/new-register-feature 

und schuf eine Pull-Anforderung pj2/new-register-feature in dev-project2 zu verschmelzen.

Dann rebasen Sie dev-project2 auf dev-project1.

Mit dem Fütterungsmaterial abgeschlossen, die Grafik sieht jetzt aus wie:

--A--B--C--D--E--F--G--H <- dev-project1 
     \     \ 
     \-c--d--e-[f]-[g] \-c'--d'--e'--f'--g' <- dev-project2 
       \ 
       \-p--q--r <- pj2/new-register-feature 

Was Sie in der Zusammenführung Anfrage beobachten ist:

  • anstelle des Sehens: p--q--r wie die Geschichte für Ihre Branche (WRT dev-project2),
  • Sie jetzt c--d--e--p--q--r sehen

Wenn Sie etwas näher an der ursprünglichen Kurve wiederherstellen wollen, müssten Sie pj2/new-register-feature oben auf e' rebase (das heißt: die umbasiert Version des Original-Gabelpunkt zwischen pj2/new-register-feature und dev-project2).

0

Ich werde versuchen, es zu erklären, ohne Bild.

Nachdem Sie project2 auf project1 umgebettet haben, ändern Sie alle commits in project2 (zumindest ihren Hash), da die Rebase sie nach den commits in project1 ablegt. In diesem Fall sind Ihre commit-commit- und new-register-feature-Commits völlig unterschiedlich und Sie sehen alle diese Commits.

Lesen Sie die https://git-scm.com/book/en/v2/Git-Branching-Rebasing für einige weitere Daten, erklären sie, was passiert, wenn Sie neu erstellen.