如何合并两个分支,并自动忽略特定的文件/文件夹?

我有一个MEAN堆栈项目分为两个分支:离子和节点。

Ionic branch有所有Ionic相关的文件/文件夹。 这里创buildfront-end是为手机networking设备提供服务。 但是这个分支的Web设备代码不在任何地方。

Node branchserver相关的文件/文件夹。 这个分支将被上传到托pipe应用程序端点,并需要提供公共的前端文件夹。 前端文件夹来自Ionic分支。

我已经阅读了这篇文章,关于将一个提交拆分成单独的提交,所以我们可以忽略其中的一个。 这不能解决问题,因为我有很多不应该合并的文件和文件夹,并且很难在每次合并中将它们全部分开。 我只需要front-end/public/www文件夹合并到节点分支。

我还读了关于这个 , 这个 , 这个以及关于互联网上的Stack和文章的更多相关的问题,但是他们都不能解决我的问题。

我们有一个节点和一个离子分支。 节点分支只需要从Ionic分支只有特定的文件和文件夹。 我们怎么做到这一点?

附录

分支节点示例:

 ¬ node_modules ¬ routes ¬ www ¬ files/etc 

离子型节点例子:

 ¬ node_modules //this should not merge into Node ¬ hooks //this should not merge into Node ¬ resources //this should not merge into Node ¬ www //MERGE THIS ¬ files/etc //some should merge, some should not. 

这是从我的头顶上,所以这只是一个想法,尝试。
如果我理解正确,你想select性地将ionic合并到node

 git checkout node git checkout -b temp git checkout -p ionic -- www # solve merge conflicts # git add or git add -p (interactive per diff adding) git checkout -p ionic -- files/etc 

git checkout -pgit add -p应该给你添加和检出文件path/文件/部分的交互选项。

git checkout – 帮助
-p –patch以交互方式select区别(或索引,如果未指定)和工作树之间的区块。 然后select的hunk被反向应用于工作树(如果指定了a,索引)。

这意味着你可以使用git checkout -p来有select地放弃当前工作树的编辑。 请参阅git-add(1)的“交互模式”部分,了解如何操作–patch模式。