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

时间:2009-10-08 22:31:32

标签: git

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

4 个答案:

答案 0 :(得分:15)

我会尝试制作所有重叠的部分git submodules

答案 1 :(得分:7)

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

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

这将引导您完成包含子模块的超级项目,从超级项目中编辑子模块并将其推回。它还显示了一个危险,即如果您运行git submodule update并且在主分支上有本地未按下的更改,则会无提示地覆盖更改。

具体来说,某个地方你有一个共享文件夹'文件夹' - 你需要从所有的git项目中删除它,但是在某个地方用当前内容作为初始提交创建一个新的git repo。然后,您将git submodule <repo> folder; git submodule update在现在将共享它的所有项目中。他们都能够将更改推送到共享仓库,并且能够降低彼此的变化。

答案 2 :(得分:6)

听起来你应该对公共元素进行分区,以便有明显的区别,然后使用子模块。确保你清楚地分开常见的碎片,否则你可能最终会遇到难以维护的混乱。

答案 3 :(得分:2)

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