Git:将提交的一部分应用到另一个分支

我怎样才能将一个分支的一部分提交到另一个分支? 我明白我可以挑选一个提交,但是我需要更进一步,“挑选”提交引入的一些更改,并将其应用到另一个(目标)分支。

有没有一个干净的方法来做到这一点,或者我应该只是申请整个提交,手动撤消一些hunk,并记住将来创build更多的primefaces提交?

git cherry-pick -n <SHA>git cherry-pick -n <SHA>更改但不提交。 然后你可以使用git reset -p来取消你不想要的位,或者git reset HEADgit add -Ap来仅仅改变你想要的改变。

如果您要应用的部分可以通过path指定(即,您不希望在一个文件中指定hunk),则可以使用其他解决scheme。

一种方法是从提交形成补丁,并将其应用到您的分支。

随着你希望修改的分支被检出:

 git show <SHA> -- <relevant paths> | git apply 

将应用在提交SHA中的任何更改,pathrelevant paths到您当前的工作副本。