如何跨git存储库共享文件?

我有不同服务器上的子域的几个应用程序每个应用程序都有自己的git存储库。 每个应用程序使用几个共享文件 本质上,我的回购重叠。 这种情况如何最好地处理多个项目的多个编辑器?

我会尝试使所有重叠的部分git submodules 。

只要多个项目将其子模块的更改推送到共享位置,是的,他们都可以更改共享资源。 也就是说,如果其中一个需要他们的“特殊”,他们将不得不分支子模块。

https://git-scm.com/book/en/v2/Git-Tools-Submodules

这会引导您通过一个带有子模块的超级项目,从超级项目中编辑子模块并将其重新推回。 它也显示了如果你运行一个git submodule update并且在master分支上有本地未修改的更改,那么这个危险就会悄无声息地覆盖更改。

具体来说,你有一个共享文件夹“文件夹”的地方 – 你需要从所有的git项目中删除这个,但创build一个新的git仓库与当前的内容作为初始提交。 然后你会git submodule <repo> folder; git submodule update 所有现在将共享它的项目中的git submodule <repo> folder; git submodule update 。 他们将能够把变化推到共享的回购,并能够拉下对方的变化。

这听起来像你应该划分共同的元素,以便有明确的区别,然后使用子模块。 确保你清楚地分开了一些常见的东西,否则你很可能会得到一个难以维系的混乱。

你也可以使用git-subrepo工具。 维基页面是链接的。 它基本上是submodulesubtree的改进版本。