J'ai fait le choix parmi une critique gerrit dans ma branche. Dans la révision du code gerrit, j'ai deux ensembles de correctifs et j'en ai choisi un avant, donc maintenant je veux faire le deuxième ensemble de correctifs, mais il y a des conflits, comment puis-je forcer git à accepter toutes les modifications? Merci!
Vous pouvez lui dire de toujours préférer les modifications du commit que vous choisissez:
git cherry-pick commitish --strategy-option theirs
commitish
peut être un hachage SHA-1 d'un commit, ou un branch-name
pour le dernier commit de cette branche, branch-name~1
pour le commit avant ça etc.
Si vous voulez faire l'inverse, utilisez:
git cherry-pick commitish --strategy-option ours
Le raccourci pour --strategy-option
est -X
(en haut cas X).
git cherry-pick -X theirs <commit-hash-you-want-to-force-cherry-pick-from>
Mon workflow habituel est le suivant:
En supposant que je suis sur le master et que je viens de faire un commit.
git cherry-pick -X theirs 5cf3412
vous pouvez le forcer brutalement avec quelque chose comme ceci:
git show cb1e6a:path/to/filename > path/to/filename
git add path/to/filename
git commit
mais je suis sûr qu'il existe un moyen plus simple.
Si vous êtes déjà en situation de conflit, faites simplement
# add only conflicting files here
git checkout --theirs path/to/file
git add path/to/file
git cherry-pick --continue