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

时间:2011-08-10 16:13:38

标签: git

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

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

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

root/x
root/y
root/z

某些提交会影响所有三个目录。现在,我希望以这样一种方式进行合并:我将历史记录更改为yz,而不是x

2 个答案:

答案 0 :(得分:6)

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

git merge --no-commit <branch>
git reset root/x
git commit

最好还是按照@useless in his answer

的提法拆分你的提交

答案 1 :(得分:3)

如果您的更改仍然是本地的,最简单的方法是splitting your commits进入真正正交的更改,您可以单独合并。


死链接修复:尝试使用this link(或只是查看 git rebase 的本地联机帮助页),然后搜索 Splitting Commits