web-dev-qa-db-fra.com

git applique les modifications d'un commit à une autre branche

Je veux faire quelque chose de similaire à git rebase mais sans réduire les commits parallèles.

Disons que j'ai les commits suivants:

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

Maintenant, je veux prendre les modifications que D a apportées à C dans 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 commits B et E est égale à la différence entre les commits C et D. Est-ce possible? Est-il possible de le faire sans créer de correctif?

26
juniper-

Oui:

git checkout -b mergebranch B
git cherry-pick D
36
cforbish

Si le dernier commit de la branche que vous voulez sélectionner (foo dans l'exemple) est un commit de fusion, vous pouvez pointer sur le commit spécifique en sélectionnant cherry en utilisant git cherry-pick branchname~1 pour obtenir le commit qui était le parent du fusionner.

0
aaaarrgh