2017-07-06 3 views
0

Ich habe folgende Situation:git rebase zu einem anderen Zweig

Master ---X---X---X 
       \ 
    Alpha branch A1---A2---A3---A4---A5---A6 
         \    \ 
         \ beta branch B1---B2 
         \ 
       My Branch M1---M2---M3 

Ich möchte meinen Zweig zu "B2" bewegen, wie dies enden:

Master ---X---X---X 
       \ 
    Alpha branch A1---A2---A3---A4---A5---A6 
            \ 
          beta branch B1---B2 
              \        
            My Branch M1---M2---M3 

, das zu tun, sollte Ich mache, in meiner Branche, eine git rebase beta oder soll ich die Option hinzufügen --auf wie folgt: git rebase --onto beta alpha My? Ich die Dokumentation gelesen hatte, aber ich habe immer noch nicht den Unterschied herauszufinden ...

Antwort

1

Hier vier Möglichkeiten, es zu tun:

  • git rebase < Zweig>

    Ausgehauste Verzweigung auf < Zweig zurücksetzen>, Unterschiede anwenden (zwischen vorheriger HEAD und dem gemeinsamen Vorfahren) und commit.

    git checkout my 
    git rebase beta 
    
  • git rebase < branch1> < branch2>

    < branch2 Reset> auf < branch1> gelten Unterschiede (zwischen früheren < branch2> und der gemeinsame Vorfahr) und begehen.

    git rebase beta my 
    
  • git rebase --onto < branch1> < branch2>

    Zurücksetzen ausgecheckt Zweig < branch1> Unterschiede gelten (zwischen früheren HEAD und < branch2>) und begehen.

    git checkout my 
    git rebase --onto beta A2 
    
  • git rebase --onto < branch1> < branch2> < branch3>

    < branch2 Reset> auf < branch1> gelten Unterschiede (zwischen früheren HEAD und < branch2>) und begehen.

    git rebase --onto beta A2 my 
    
0

Wenn Sie auf Ihre Niederlassung sind, sagen nur git rebase beta oder git rebase B2 tun. Der Unterschied ist, dass mit --onto Sie mehr knifflige Situationen kontrollieren können ..... wie das Gegenteil: Ich möchte den Beta-Zweig über meinen Zweig bewegen. Wenn Sie oben auf der Beta sind und git rebase my-branch laufen, würden Sie mit M1 - M2 - M3 - A3 '- A4' - A5 '- B1' - B2 'enden (weil von dem Punkt, wo die Zweige divergierte (A2) Revisionen A3 bis A5 (beide inklusive) müssten auch in eine einfache Umlage einbezogen werden.In diesem Fall müssten Sie ausführen: git rebase --onto my-branch alpha-branch beta-branch.Hoffnung, dass es aufräumt

Verwandte Themen