合并git分支,同时排除对某个目录的更改

Nik*_*vic 6 git

我想将更改从分支B合并到我的分支A,以便合并排除对给定目录的任何更改.这里的问题是我有一些提交跨越多个目录的更改,其中一个需要被排除.

这样的事情是否可能,例如历史改写?

为了澄清,我的目录结构是:

root/x
root/y
root/z
Run Code Online (Sandbox Code Playgroud)

一些提交会影响所有三个目录.现在,我想以这样的方式,我在历史上都改变为合并yz,但不x.

kni*_*ttl 6

您可以合并另一个分支而不提交它,然后重置目录的状态:

git merge --no-commit <branch>
git reset root/x
git commit
Run Code Online (Sandbox Code Playgroud)

最好还是按照@useless在他的回答中提到的那样拆分你的提交