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

时间:2015-12-05 14:58:11

标签: node.js github version-control merge ionic-framework

我有一个MEAN堆栈项目,分为两个分支:Ionic和Node。

Ionic branch包含所有Ionic个相关文件/文件夹。此处创建front-end以提供移动设备网络设备。但是此分支中的Web设备代码不会托管在任何地方。

Node branchserver个相关文件/文件夹。此分支将上载以托管应用程序端点,并且需要提供公共前端文件夹。前端文件夹来自Ionic分支。

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

我还阅读了有关thisthisthis以及有关互联网上堆栈和文章的更多相关问题,但没有一个能解决我的问题。

我们有一个Node和一个Ionic分支。 Node分支只需要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.

1 个答案:

答案 0 :(得分:4)

这是我的头脑,所以尝试一下只是一个想法 如果我理解正确,您希望选择性地将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应该为您提供添加和签出路径/文件/文件部分的交互式选项。

  

git checkout --help
  -p    - 补丁   交互式选择(或索引,如果未指定)和工作树之间的差异。然后将所选择的帅哥反向应用于工作树(如果指定了a,则为索引)。

     

这意味着您可以使用git checkout -p选择性地丢弃当前工作树中的编辑内容。请参阅git-add(1)的“交互模式”部分,了解如何操作--patch模式。