【问题标题】:Multiple projects in git (subtrees)git中的多个项目(子树)
【发布时间】:2016-01-26 16:37:10
【问题描述】:

我有一个 git 存储库,用于我们的 ansible 配置。目录结构是这样的:

ansible
|---Site
`---Roles
      |---Common
      `---other_project

这是在 git 中,它是私有的,因为只有我的团队需要访问它。

我想让other_project 成为一个单独的存储库,以便可以公开上传。我认为我需要的是子树,并且我已经完成了这项工作。我的问题是工作流程。通常我遵循this 之类的工作流程模式。

这里的重点是我有一个开发分支和一个主分支。一旦一组代码稳定了,它就会被推送到 master 并带有 --no-ff ,这样在 master 中你只能看到稳定的版本,中间什么都没有。

如何使用other_project 做到这一点。有没有办法为子树使用分支?然后如何将一个分支合并到另一个分支并在它们之间交换?

【问题讨论】:

    标签: git ansible git-subtree


    【解决方案1】:

    你看过 Git Submodules 吗?

    问候。

    【讨论】:

    • 是的,但我看不出他们会有什么帮助。如果你能指出一些有助于解释他们如何在这样的工作流程中工作,或者如何拥有单独的分支的东西,那么我会再看一遍。
    • 我认为这正是您正在寻找的。 other_project 应该成为一个 git 子模块。我的回复中有一个链接。
    • 顺便说一句,分支模型对我来说看起来很糟糕。无论如何,我永远不会合并功能不兼容的分支。
    • 如果我理解子模块,它们适用于您使用正在其他地方开发的项目时。我想做的是有一个我开发的项目,但如果需要的话,它的一部分可以单独使用。
    • 为什么阻止您为该项目拥有另一个存储库?
    【解决方案2】:

    如果我的结构正确,other_project 就是一个角色。然后你可以使用 Ansible Galaxy 来安装它。

    为此,您只需在 Ansible 根文件夹中添加一个 requirements.yml,其中包含如下内容:

    - src: https://github.com/your/role
      version: master
      name: other_project
    

    然后用ansible-galaxy install -r requirements.yml安装它

    详情请见here

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 2021-08-08
      • 2015-08-26
      • 1970-01-01
      相关资源
      最近更新 更多