【问题标题】:How to merge two branches and, automatically, ignore specific files/folders?如何合并两个分支并自动忽略特定文件/文件夹?
【发布时间】:2016-03-10 11:33:54
【问题描述】:

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

Ionic branch 拥有所有与Ionic 相关的文件/文件夹。在此处创建front-end 以服务于手机网络设备。但是这个分支的网络设备代码没有托管在任何地方。

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

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

我还阅读了有关 thisthisthis 以及有关 Stack 和 Internet 上的文章的更多相关问题,但没有一个可以解决我的问题。

我们有一个 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.

【问题讨论】:

  • 只有 'www' 文件夹应该在两个分支的同一路径上。如果需要,我可以改变其他人。只有 Ionic 的“www”文件夹将用于生产。
  • 这个Question 应该有帮助。

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


【解决方案1】:

这是我的想法,所以这只是一个尝试的想法。
如果我理解正确,您想选择性地将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 模式。

【讨论】:

    猜你喜欢
    • 2020-11-13
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-11
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多