如何挑选一个提交并仅应用于某些文件?

问题描述

假设我有两个git分支:

  1. 分支a文件1和2
  2. 分支b文件2

我在分支a中有一个提交,它修改文件1和2。 我结帐了分支b,试图对此提交进行选择,但我只希望提交更改文件2的部分(因为分支b没有文件1)。

这怎么可能?

解决方法

您可以正常使用樱桃采摘。尝试将更改应用于不存在的文件应该会发生冲突(因此它将不会自动提交),然后您可以使用

git rm path/to/file1

然后提交。

通常,您可以使用git cherr-pick -n来确保即使补丁不冲突也不会提交任何内容,然后在提交之前进行所需的任何编辑。