代码之家  ›  专栏  ›  技术社区  ›  intuited

创建多个git分支的联合分支

  •  3
  • intuited  · 技术社区  · 14 年前

    我希望能够在现有分支的基础上分层其他分支,并让这些分支独立地进行修改。例如,这将有助于将不同子项目的二进制文件统一到同一个 bin 目录。一般来说,给定的文件只存在于一个层中。

    理想情况下,我想我应该使用unionfs来实现这一点,但它必须以某种方式提供一种访问各种.git目录的方法,这些目录将显示同一根目录下的所有子目录。不管怎样,我认为工会实际上不起作用?因此,最好维护一组从repo根到包含层的其他存储库的符号链接。

    • 将每个“层”保存在单独的存储库中
    • 将符号链接添加到master.gitignore,以便在切换分支时不会删除它们。
    • 与Windows完全不兼容,以便能够编辑根存储库中文件所在的位置。IE使用符号链接,而不是仅仅将文件复制到主repo中。

    似乎这样的系统最终会有点像 git submodule ,其关键区别在于子模块将共同驻留在存储库的同一根级别上。

    我想知道是否已经有一个实用程序来管理这个?我想用 stg (stacked git)来实现这种结构,但它似乎不是一杯茶。

    4 回复  |  直到 14 年前
        1
  •  3
  •   kfed    13 年前

    如果想法是有两个或多个分支处理单独的更改,但有一个分支将它们包含在一起进行测试,那么您可能需要查看GIT post commit/post update挂钩,以便将各个分支自动合并到混合的分支中。

    如果不是为了测试,那么我想考虑重新构建东西的设置方式,可能会把东西分解成子模块。

        2
  •  1
  •   brandon.holtsclaw    12 年前

    你在寻找git子树合并,然后,这个页面列出了你在寻找什么,但在一个web上下文,只是使用你自己的dir结构,但这些例子。。。

    http://progit.org/book/ch6-7.html

    我真的很惊讶有更多的人支持子模块

        3
  •  0
  •   VonC    14 年前

    我希望能够在现有分支的基础上分层其他分支,并让这些分支独立地进行修改

    子模块 是为了。

    诀窍是:您需要在 主项目中的公共路径(例如 <project>/bin ).

    这是不可能的,至少不能以跨平台的方式,所以你只剩下一个问题:“这种布局是绝对必要的吗?”。
    部署 问题,而不是源代码管理问题。
    一、 e:在测试 部署

        4
  •  0
  •   Gilly    6 年前

    我也需要这么做。退房 https://github.com/lesfurets/git-octopus .

    git octopus features/*