【发布时间】:2009-10-08 22:31:32
【问题描述】:
我在不同的服务器上有多个跨子域的应用程序 每个应用程序都有自己的 git 存储库。每个应用程序使用多个共享文件。 本质上,我的回购重叠。 多个项目的多个编辑如何最好地处理这种情况?
【问题讨论】:
标签: git
我在不同的服务器上有多个跨子域的应用程序 每个应用程序都有自己的 git 存储库。每个应用程序使用多个共享文件。 本质上,我的回购重叠。 多个项目的多个编辑如何最好地处理这种情况?
【问题讨论】:
标签: git
我会尝试制作所有重叠的部分git submodules。
【讨论】:
只要多个项目将其对子模块的更改推送到共享位置,是的,它们都可以对共享资源进行更改。也就是说,如果其中一个需要他们的“特殊”,他们将不得不分支子模块。
https://git-scm.com/book/en/v2/Git-Tools-Submodules
这将引导您完成一个包含子模块的超级项目,从超级项目中编辑子模块并将其推回。如果您运行 git submodule update 并且您在 master 分支上进行了本地未推送的更改,它还显示了一个危险,即默默地覆盖更改。
具体来说,在某个地方你有一个共享文件夹“文件夹”——你需要从所有 git 项目中删除它,但在某个地方创建一个新的 git repo,并将当前内容作为初始提交。然后,您将在现在将共享它的所有项目中git submodule <repo> folder; git submodule update。他们都可以将更改推送到共享仓库,并且可以拉下彼此的更改。
【讨论】:
听起来您应该对公共元素进行分区以便有明显的区别,然后使用子模块。确保清楚地分开常见的部分,否则最终可能会导致无法维护的混乱。
【讨论】:
您也可以使用git-subrepo 工具。维基页面已链接。基本上是submodule和subtree的改进版。
【讨论】: