2017-01-14 4 views
2

zu früh Verzweigung habe ich so etwas wie:git: wie behandeln

  y1-y2-y3-y4-y5 
     /  /
x1-x2-x3   /
     \  /
      z1-z2-z3 

Aber jetzt will ich Änderungen von Y1 und Y2 in z2 auch haben, und die die nächsten sind.

z3 wurde bereits in y5 zusammengeführt.

Was wir erreichen wollen, ist so etwas wie:

  y1-y2-y3-y4-...- throw away 
     / \  
x1-x2-x3  \  
     \  \ 
      z1-z2-z3-z4- continue work with changes from y1&y2 

Wie mit diesem Problem umgehen?

  1. Kirsche
  2. auf z3 holen: git merge y2? (Auf z3 merge scheint zu funktionieren.)
  3. etwas anderes

Einige zusätzliche Informationen:

Die Repo auf 3 Servern vorhanden ist. (Kein permanenter Netzwerküberschuss möglich) Jeder Klon greift von Zeit zu Zeit auf alle Fernbedienungen zu. Im Falle der Verwendung von rebase habe ich Angst vor einigen Nebenwirkungen.

+0

Ich hatte gerade 'kirsch pick' y1, y2 – artm

+0

Wenn dies ein häufiges Vorkommen ist, solltest du deinen git-Workflow wahrscheinlich ändern, um etwas zu verwenden, das besser zu dem passt, was du eigentlich erreichen willst. –

+0

@JoePhillips: Nein, dies ist das Ergebnis eines Bugfix-Zweiges, der nicht komplett verwendet werden kann tely. Aber der erste Teil der Arbeit ist nützlich und sollte jetzt zusammengeführt werden. – Klaus

Antwort

1

Der Rebase-Befehl war eigentlich Basis dafür.

Derzeit Ihrer Branche an x3 basiert und Sie möchten, um ihre Basis zu bewegen, um y2 so

git checkout z 
git rebase y2 

https://git-scm.com/book/en/v2/Git-Branching-Rebasing

Weitere Beispiele

+0

Ist das sicher, wenn bereits mehrere Kassen vorhanden sind? Etwas Besonderes, wenn Repo auf mehrere Server geklont wird. Ich fürchte etwas um Rebase. Viel Arbeit durch eine "fast perfekte Rebase" in der Vergangenheit :-) – Klaus

+0

@klaus Sie haben nicht genug Details zur Verfügung gestellt, um wirklich zu wissen, ob das sicher ist. Sie erwähnen nichts über die Verwendung von Forks oder ob Sie in einem ganzen Zweig oder nur ein Commit oder zwei hier und dort verschmelzen wollen. –

+0

@JoePhillips: Alle Fernbedienungen haben den gleichen Inhalt und sind tatsächlich synchron. Der Zweig, den ich verschmelzen möchte, ist eine lineare Linie von Commits, aber die gleichzeitige Verzweigung wurde einige Male mit der Verbindung zusammengeführt, die jetzt zutreffen sollte ... ahh ja: Ich werde meine Frage aktualisieren, um besser zu werden Bild. – Klaus

Verwandte Themen