谁能解释一下如何将以下系统引入 git 之外,即通过分支和子模块使用版本号而不是 git 的上下文:
假设我们在项目git repo 中有一些工具。资产位于资产仓库中,并且由于数据(组织、命名、数据字段数量等)随时间而变化,而且工具也必须更新以应对这些变化,我们希望资产仓库成为项目回购的子模块。这让我们可以做一些事情,比如分支项目、签出旧版本,并让资产及时回退以匹配,因此工具和数据随着时间的推移保持同步。例如,这让我们可以检查一周前的所有内容。
这也意味着我们可以有一个疯狂的想法来重塑数据以在特定工具中实现新功能,我们可以分支项目,然后分支资产,在项目中的新分支中,我们可以检查资产中的新分支,并且有效地分开处理所有事情。如果有真正的工作,我们可以直接跳回项目的主人,资产更新跟风。如果疯狂的新数据结构成功了,我们可以分支(或重用第一个分支)并使其他工具与新数据保持一致,当一切正常时,我们可以将所有内容合并回来,而不会中断任何人(提供的接口没变)。这似乎是一个不错的工作流程,它将资产与工具分开,因此各个部门可以使用它们,而无需大量甚至无法在他们的系统上运行的工具仓库,而且我可以在没有大量工具的情况下删除这些工具如果我只想处理一些与笔记本电脑上的资产分开的逻辑。
使用包和版本号是否有任何接近这种复杂性和灵活性的东西?我从未使用过它们,但我一直觉得如果我想将工具从 git 中分离出来以便在其他地方分发,同时保持相互依赖关系,我就需要这样做。人们如何解析 git 和包版本号?我已经研究了一段时间,但我仍然对这一切感到困惑。