【问题标题】:How to Organize related applications into git repo's?如何将相关应用程序组织到 git repo 中?
【发布时间】:2014-09-26 22:16:29
【问题描述】:

知道何时将一组相关和/或内聚的应用程序拆分为 git repo 和/或分支的决策树是什么?我应该将每个应用程序保存在回购中吗?还是单个仓库中的所有应用程序和依赖项?还是介于两者之间?

answer How should I organize multiple related applications using git? 声称每个项目都有一个存储库是合适的,但没有提供关于项目是什么的线索。

当 git 存储库被拆分时,还有开发、测试、集成测试和生产检查的问题。回答how do you organize your programming work 列出了一些分支/标签选项,但忽略了多应用详细信息。

还有数据库架构!架构的增量定义会有所帮助,但同样,如果数据库跨越后端和前端应用程序,那么该定义将保留在哪里?

我一直在思考的一些例子:

  1. 前端 Web 应用和后端 CGI/DB:一个或两个 repo?
  2. 一组使用其他后端功能的 Web 后端
  3. 一组共享 CSS 和 jquery 插件的前端应用程序
  4. 跨依赖代码测试前端功能的 selenium 脚本 - 在前端应用程序存储库或依赖代码存储库中?

如果我想在单个应用程序上工作,则很难(嗯,乏味且容易出错)检查 repo 的目录,所以我必须检查整个 git 树(或至少克隆整个树),因此这意味着 git 并不是真正为将所有应用程序的 & 依赖项保存在单个树中而构建的。

但是,如果我想将每个项目(应用程序、框架、依赖项、文档树、CSS)保留在自己的存储库中,那么我就会陷入追逐依赖解决方案的问题,也就是说,我不知道是哪个每个应用程序的版本都兼容。我认为 git 标签是一个不错的选择,只要我可以将它们移动到保持兼容性的新版本。

当应用程序的拆分或合并时——就像将模型重构为基本模型时经常发生的那样——我可以将这些文件的 git 历史记录移动到另一个 git 吗?我不知道如何做到这一点,所以这倾向于一个单一的回购。

如果我跨应用开发新功能,分支代表功能会很好。

我想我想要一个 repo 的 repo —— 存在吗?

【问题讨论】:

    标签: database git github version-control development-environment


    【解决方案1】:

    这是关于使用组件方法:组件是一组连贯的文件,它们有自己的历史(自己的分支、标签和合并集)。
    它应该只包含无法生成的内容(尽管有时可以将 db 模式添加到存储库中,如“What is the right approach to deal with Rails db/schema.rb file in GIT?”所示。但您仍然可以生成它,如“What is the preferred way to manage schema.rb in git?”所示,以避免@987654323 @)

    一个组件可以进化,而另一个组件不必进化。请参阅“Structuring related components in git”。
    这是允许您回答的主要标准:“X 和 Y:一个或两个回购?”。
    您可以稍后 split a repo into two,但请注意,这将改变他们的历史:其他贡献者需要将他们自己的 repo 重置为新的历史。

    您可以将这些不同的组件 repos 与子模块组合在一起,如 explained here(即“repo of repos”,或者,如果您只想拥有一个 repo,则在 subtree 中,如 illustrated here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      相关资源
      最近更新 更多