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
)"