【问题标题】:Version a "starter kit" to work upon in other projects版本“入门工具包”以在其他项目中使用
【发布时间】:2016-09-27 10:41:04
【问题描述】:

我所有的项目都具有相同的结构、基本文件(每个都包含一些代码)。

我想要的东西:

  • 版本此代码;
  • 在其他项目中使用它;
  • 能够在那些项目中更新它;
  • 仅在这些文件中添加代码,特定于每个项目(不需要删除或更改现有代码)。

我做了一些研究。使用包管理器不适合我的需要,因为我想将代码添加到包中。然后我找到了 git 子模块和子树,后者似乎可以完成这项工作。

你怎么看?我是通过选择子树走在正确的道路上还是有更好的方法?我应该使用完全不同的解决方案吗?

谢谢大家

[编辑]

更多信息:

这个“入门工具包”有点像一个框架。我正在考虑以一种不需要在其他项目中编辑其文件但会增加约束的方式构建它。

  • 我认为子模块不适合,因为我需要处理代码;
  • 每个项目都需要自己的存储库。

【问题讨论】:

    标签: git package git-submodules git-subtree git-subrepo


    【解决方案1】:

    这似乎过于复杂,但取决于代码库的相似程度以及它们是否实际上是不同的项目,您可能想要使用分支或使用共享代码创建一个 repo,然后克隆(或者更有趣,添加为子模块)将其放入其他项目的存储库中。因此,如果您的共享代码是shared,并且您有项目foobar,您将创建3 个单独的存储库并将shared 克隆(或子模块添加)到foobar。这实际上取决于您更新shared 的频率以及foobar 的分离程度

    【讨论】:

    • foobar 可能是完全不同的项目,但它们将建立在相同的结构和代码之上。我对子模块的理解非常有限。我认为我想在每个项目中编辑子模块的事实会有问题。
    【解决方案2】:

    只需制作一个主 git repo,然后克隆它;您可以为基础文件的不同变体设置不同的分支。

    这是非常基本的 git 用法。

    【讨论】:

    • 在“starter kit” repo 中为每个项目创建一个分支并不是一个好主意。由于多种原因,每个项目都需要自己的仓库。
    • @AndréaMaugars 不是每个项目,每个“骨架变化”。
    • 我并没有说你应该把所有的项目放在同一个,回购@AndréaMaugars。我说你应该克隆一个“模板仓库”。从根本上来说,这是不同的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2014-07-15
    • 2016-01-15
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多