262 votes

Git: Comment rebase sur un commit spécifique?

J'aimerais revenir sur un commit spécifique, pas sur un HEAD de l'autre branche:

 A --- B --- C          master
 \
  \-- D                topic
 

à

 A --- B --- C          master
       \
        \-- D          topic
 

au lieu de

 A --- B --- C          master
             \
              \-- D    topic
 

Comment puis-je y arriver?

164voto

Adam Dymitruk Points 34999

Vous pouvez éviter d'utiliser le paramètre --onto en créant une branche temporaire sur le commit que vous aimez, puis en utilisant rebase sous sa forme la plus simple:

 git branch temp master^
git checkout topic
git rebase temp
git branch -d temp
 

98voto

r0hitsharma Points 82

Vous pouvez éventuellement prendre une approche directe:

 git checkout topic
git rebase <commitB>
 

92voto

Adam Dymitruk Points 34999

Utilisez l'option "on":

 git rebase --onto master^ D^ D
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X