Git: ¿Cómo fusionar una twig, excepto una confirmación?

Tenemos un PR todo está bien, excepto 1 commit, ¿es posible fusionar todo excepto un commit específico?

Si la confirmación que desea omitir es la última confirmación de la sucursal, simplemente puede fusionar su progenitor.

branch ... A --- B --- C / \ master ... O ... git merge branch^ 

Si no es así, puedes git cherry-pick cada misión aparte de la mala. Un atajo para esto es usar git rebase -i y eliminar la línea que no desea.

 branch ... A --- B --- C / master ... O ... $ git rebase -i master branch (inside editor) pick 0123456789 A (delete this line) pick 3456789abc B pick 6789abcdef C (save and exit) branch ... B' --- C' / master ... O ... 

También podría fusionar y luego revertir la confirmación.

 $ git merge branch $ git revert A branch ... A --- B --- C / \ master ... O ... merge --- ∀ 

O revierte en la twig y luego fusiona.

 $ git checkout branch $ git revert A $ git checkout master $ git merge branch branch ... A --- B --- C --- ∀ / \ master ... O ... merge 

Puede fusionar la twig en el tree de trabajo y revertir la confirmación no deseada antes de confirmar.

git merge --no-commit branch
git revert --no-commit unwanted_commit
git commit -m "Merged branch git commit -m "Merged (except unwanted_commit )"