如何将提交的部分应用于另一个分支?我知道我可以挑选一个提交,但我需要更进一步,“挑选”该提交引入的一些更改并将它们应用到另一个(目标)分支。
有没有一种干净的方法可以做到这一点,或者我应该只应用整个提交,手动撤消一些技巧,并记得在将来创建更多的原子提交?
答案 0 :(得分:75)
git cherry-pick -n <SHA>
将暂存更改但不提交更改。然后,您可以使用git reset -p
取消您不想要的内容,或git reset HEAD
和git add -Ap
仅展示您想要的更改。
答案 1 :(得分:12)
如果要应用的部分可以通过路径指定(即,您不希望在一个文件中指定数据),则可以使用另一种解决方案。
一种方法是从提交中形成一个补丁,并将其应用到您的分支。
您要修改的分支签出:
git show <SHA> -- <relevant paths> | git apply
将路径relevant paths
中提交SHA的任何更改应用于您当前的工作副本。