Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
周围目录的git子树或子模块_Git_Git Submodules_Git Subtree - Fatal编程技术网

周围目录的git子树或子模块

周围目录的git子树或子模块,git,git-submodules,git-subtree,Git,Git Submodules,Git Subtree,我们通常处理与CodeIgniter共享类似目录结构的项目,其中有一个围绕应用程序代码的框架(在父目录和同级目录中)。我们需要管理两个主要的工作流: 在私有(非github)存储库中维护本地应用程序代码(例如/application目录) 从外部框架拉取上游更改,提交拉取请求等 我在研究中发现的最接近的方法是使用,加上少量的.gitignore或某种相关的巫毒,然而这似乎非常脆弱。有没有更好的方法来设置我们的存储库和目录?更好的方法是按照优先顺序将时间投入(非伪)子模块或子树的学习曲线中。你的评

我们通常处理与CodeIgniter共享类似目录结构的项目,其中有一个围绕应用程序代码的框架(在父目录和同级目录中)。我们需要管理两个主要的工作流:

  • 在私有(非github)存储库中维护本地应用程序代码(例如
    /application
    目录)
  • 从外部框架拉取上游更改,提交拉取请求等

  • 我在研究中发现的最接近的方法是使用,加上少量的
    .gitignore
    或某种相关的巫毒,然而这似乎非常脆弱。有没有更好的方法来设置我们的存储库和目录?

    更好的方法是按照优先顺序将时间投入(非伪)子模块或子树的学习曲线中。你的评估是对的,“假子模块”是一种过于简化的脆弱尝试,在琐碎的情况下就足够了,但不适用于许多项目和多个对子项目的分支、历史和发布管理有不同想法的合作者

    如果你真的想把所有东西都当作一个巨大的项目,你可以研究git子树合并,但我建议你不要这样做,因为子模块特别适合管理具有不同发布时间表的第三方依赖关系

    根据你的问题,我知道你的设置是这样的,简化了

    parent-framework
    |-- application
    |-- framework
    `-- other-framework
    
    其中框架(即,
    framework
    其他框架
    ,可能还有
    父框架
    )是在github上管理的独立项目

    这就是我要做的

  • 在独立的私有回购中管理
    应用程序
    存储库
  • 分叉框架
  • 父框架
    级别或更高级别创建一个超级项目,将所有框架(包括您的私有
    应用程序
    回购)都连接在一起
  • 这将为您提供必要的灵活性,以管理与第三方依赖框架的正交SDLC相关的
    应用程序
    开发线SDLC


    还请注意,git的最新版本使递归推送(和更新)子模块变得非常容易,因此不必担心为框架创建拉取请求的复杂性。

    在这方面我有一半的期望。谢谢你指出制作超级项目,这让它在我的脑海里点击。