J'ai deux branches de fonctionnalités (privées) sur lesquelles je travaille.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Après avoir travaillé sur ces branches un peu de temps, j'ai découvert que j'avais besoin des modifications de Branch2 dans Branch1. Je voudrais rebaser les changements dans Branch2 sur Branch1. Je voudrais terminer avec ce qui suit:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Je suis sûr que je dois rebaser la deuxième branche sur la première, mais je ne suis pas entièrement sûr de la syntaxe correcte et de la branche que j'aurais dû vérifier.
Cette commande produira-t-elle le résultat souhaité?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Arjen
la source
la source
git rebase -
. voir ma réponse ciRéponses:
Passer à Branch2
Appliquez les modifications actuelles (Branche2) en plus des modifications de Branche1, en restant dans la Branche2:
Ce qui vous laisserait le résultat souhaité dans Branch2:
Vous pouvez supprimer Branch1.
la source
git rebase
pendant que je restais dans Branch1 réécrirait l'historique de Branch1 pour que les changements de Branch1 s'ajoutent à ceux copiés depuis Branch2. Cela se traduira par l'ordre de commettre ce qui suit,a - b - f - g - c' - d' - e'
.Remarque: si vous étiez allumé
Branch1
, vous pourrez avec Git 2.0 (Q2 2014) taper:Voir commit 4f40740 par Brian Gesiak
modocache
:rebase
: autorise "-
" le raccourci pour la branche précédentela source
Je sais que vous avez demandé de rebaser, mais je choisirais à la place les commits que je voulais faire passer de Branch2 à Branch1. De cette façon, je n'aurais pas besoin de me soucier de la date de création de la branche à partir de master, et j'aurais plus de contrôle sur la fusion.
la source