Ich habe zwei (private) Feature-Zweige, an denen ich arbeite.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Nachdem ich einige Zeit an diesen Zweigen gearbeitet habe, habe ich festgestellt, dass ich die Änderungen von Zweig2 in Zweig1 benötige. Ich möchte die Änderungen in Branch2 auf Branch1 übertragen. Am Ende möchte ich Folgendes haben:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Ich bin mir ziemlich sicher, dass ich den zweiten Zweig auf den ersten umstellen muss , aber ich bin mir nicht ganz sicher, welche Syntax korrekt ist und welchen Zweig ich hätte auschecken sollen.
Wird dieser Befehl das gewünschte Ergebnis liefern?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Arjen
quelle
quelle
git rebase -
. siehe meine Antwort untenAntworten:
Wechseln Sie zu Branch2
Übernehmen Sie die aktuellen (Branch2) Änderungen zusätzlich zu den Branch1-Änderungen und bleiben Sie in Branch2:
Was würde Sie mit dem gewünschten Ergebnis in Branch2 verlassen:
Sie können Branch1 löschen.
quelle
git rebase
während des Aufenthalts in Branch1 den Verlauf von Branch1 neu schreibt, damit die Änderungen von Branch1 zusätzlich zu den Änderungen von Branch2 übernommen werden. Dies führt zu der folgenden Festschreibungsreihenfolgea - b - f - g - c' - d' - e'
.Hinweis: Wenn Sie eingeschaltet waren
Branch1
, können Sie mit Git 2.0 (Q2 2014) Folgendes eingeben:Siehe Commit 4f40740 von Brian Gesiak
modocache
:rebase
: Erlaube "-
" Kurzschrift für den vorherigen Zweigquelle
Ich weiß, dass Sie um Rebase gebeten haben, aber ich würde die Commits auswählen, die ich stattdessen von Branch2 zu Branch1 verschieben wollte. Auf diese Weise müsste ich mich nicht darum kümmern, wann der Zweig vom Master erstellt wurde, und ich hätte mehr Kontrolle über das Zusammenführen.
quelle