web-dev-qa-db-fra.com

git - applique un commit sur une autre branche à la copie de travail

j'ai donc un commit qui a un changement de code utile, mais sur une autre branche.

Je voudrais appliquer ce commit dans l'autre branche à ma copie de travail sur ma branche actuelle (pas comme un autre commit).

Est-ce possible? Comment pourrais-je faire ça?

Je pensais partager ceci est lié à ma question précédente mais spécifique à la copie de travail: git cherry picking one commit to another branch

27
Oliver Williams

Comment ajouter les validations souhaitées dans différentes branches.

git cherry-pick <SHA-1>...<SHA-1> --no-commit

Appliquez la modification introduite par les validations à l'extrémité de la branche principale et créez une nouvelle validation avec ces modifications.

La syntaxe du ... est une plage de validation. récupérer toutes les validations du début (exclure) au dernier. Si vous voulez un seul commit, utilisez un seul SHA-1

enter image description here


Lisez l'intégralité git cherry-pick documentation pour toutes les options que vous pouvez utiliser

39
CodeWizard

Vous pouvez toujours utiliser le git cherry-pick commande. Voir git cherry-pick --help:

   -n, --no-commit
       Usually the command automatically creates a sequence of
       commits. This flag applies the changes necessary to
       cherry-pick each named commit to your working tree and the
       index, without making any commit. In addition, when this
       option is used, your index does not have to match the HEAD
       commit. The cherry-pick is done against the beginning state
       of your index.

Vous pouvez donc simplement git cherry-pick -n <commitid>, et les modifications seront appliquées à votre répertoire de travail et mises en scène dans l'index (comme git -a), mais ne sera pas validé.

13
larsks