human
Je travaille sur 2 branches différentes : release et development.
J'ai remarqué que j'ai encore besoin d'intégrer certains changements qui ont été validés sur la branche release dans la branche development.
Le problème est que je n'ai pas besoin de tous les commits, seulement certains morceaux dans certains fichiers, donc un simple
```git cherry-pick bc66559
```
ne fonctionne pas.
Quand je fais un
```git show bc66559
```
je peux voir la différence mais je ne sais pas vraiment comment l'appliquer partiellement à mon arborescence de travail actuelle
gpt
La chose principale dont vous aurez besoin ici est ```git add -p``` (```-p``` est un synonyme de ```--patch```). Cela permet une façon interactive d'ajouter du contenu, vous permettant de décider si chaque morceau doit être ajouté ou non, et même de modifier manuellement le patch si nécessaire.
Pour l'utiliser en combinaison avec cherry-pick :
```git cherry-pick -n  # obtenez votre patch, mais ne le validez pas (-n = --no-commit)
git reset                   # annulez la mise en scène des modifications du commit cherry-pické
git add -p                  # faites tous vos choix (ajoutez les modifications que vous voulez)
git commit                  # faites le commit !
```
```git-cherry-pick``` a une option ```--no-commit```, et vous devez faire ```git reset```. Si vous voulez seulement laisser quelques choses en dehors du commit, vous pouvez utiliser ```git reset ...``` pour annuler la mise en scène de ces fichiers uniquement.)
Vous pouvez fournir des chemins spécifiques à ```add -p``` si nécessaire. Si vous commencez avec un patch, vous pouvez remplacer le ```cherry-pick``` par ```apply```.

Si vous voulez vraiment ```git cherry-pick -p ``` (cette option n'existe pas), vous pouvez utiliser
```git checkout -p 
```
Cela diffère le commit actuel par rapport au commit que vous spécifiez, et vous permet d'appliquer les morceaux de cette différence individuellement. Cette option peut être plus utile si le commit que vous intégrez a des conflits de fusion dans une partie du commit qui ne vous intéresse pas. (Notez cependant que ```checkout``` diffère de ```cherry-pick```: ```checkout``` essaie d'appliquer le contenu de `````` en entier, tandis que ```cherry-pick``` applique la différence du commit spécifié par rapport à son parent. Cela signifie que ```checkout``` peut appliquer plus que ce seul commit, ce qui peut être plus que ce que vous voulez.)