git appliquer les changements d'une commit à une autre branche

je veux faire quelque chose de similaire à git rebase mais sans s'effondrer en commits parallèles.

disons que j'ai les commits suivants:

  B (bar)
 /
A-C-D (foo)

maintenant je veux prendre les changements que D a introduit à C dans la branche foo, et les appliquer à B dans la barre de branche. de sorte que je me retrouve avec ce qui suit:

  B-E (bar)
 /
A-C-D (foo)

où la différence entre les propagations B et E est égale à la différence entre les propagations C et D. Est-ce possible? Est-il un moyen de le faire sans la création d'un patch?

26
demandé sur juniper- 2013-06-12 20:07:32

2 réponses

Oui:

git checkout -b mergebranch B
git cherry-pick D
36
répondu cforbish 2013-06-12 16:10:12

si le dernier commit sur la branche que vous voulez sélectionner (foo dans l'exemple) est un commit de fusion, vous pouvez pointer vers le commit spécifique à cherry pick en utilisant git cherry-pick branchname~1 pour obtenir le commit qui a été la mère de la fusion.

0
répondu aaaarrgh 2014-02-05 01:25:55