Mais le choix de cette option semble n'avoir aucun effet.
Oui, parce que les modifications actuelles sont celles des branches actuelles, qui sont dev
.
Rebasage dev
sur le dessus de dev
signifie un no-op.
git checkout dev
git rebase master
Cela signifie que la branche actuelle est dev
: à rebaser sur le dessus de master
.
Donc dans SourceTree, vous devez faire un clic droit sur master
(alors que dev
est vérifié), et sélectionnez :
Rebase current changes onto master
Howe ajoute dans les commentaires :
Nom actuel de " rebase current changes onto [branch]
"est trompeur. Regardez ce qui suit discussion sur l'amélioration SRCTREE-1578
.
Après m'être retrouvé perplexe en essayant de mettre une branche de fonctionnalité à jour avec le développement et en échouant, je me suis rendu compte que l'élément du menu contextuel du volet gauche appelé " rebase current changes onto $somebranch
"fait en fait le contraire de ce que son nom suggère :
il rebase la branche courante à l'état de $somebranch ;
En d'autres termes, il rebase $somebranch
sur (ou dans) la branche courante, et non l'inverse. (N'est-ce pas ?)
La préposition " onto
"dans le texte actuel est trompeur ; il implique que l'objet de la phrase ( $somebranch
dans mon exemple) recevra les changements.
En fait, c'est le contraire qui se produira.
L'absence du nom de la branche actuelle ajoute à la confusion.
Une reformulation qui améliorerait la structure de la phrase et inclurait le nom de la branche concernée permettrait de gagner énormément en clarté.
Par exemple :
rebase $currentbranch to head of $somebranch
rebase $somebranch onto $currentbranch