我想将更改从分支B合并到我的分支A,以便合并排除对给定目录的任何更改。这里的问题是我有一些提交跨越多个目录的更改,其中一个需要被排除。
这样的事情是否可能,例如历史改写?
为了澄清,我的目录结构是:
root/x
root/y
root/z
某些提交会影响所有三个目录。现在,我希望以这样一种方式进行合并:我将历史记录更改为y
和z
,而不是x
。
答案 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 。