如何跨git仓库共享文件?

ovfsdjhp  于 2023-01-28  发布在  Git
关注(0)|答案(4)|浏览(212)

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

ui7jx7zq

ui7jx7zq1#

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

t9aqgxwy

t9aqgxwy2#

只要多个项目将他们对子模块的修改推送到共享位置,他们就可以对共享资源进行修改。也就是说,如果其中一个项目需要他们的子模块是“特殊的”,他们就必须对子模块进行分支。
https://git-scm.com/book/en/v2/Git-Tools-Submodules
这将引导您完成一个包含子模块的超级项目,在超级项目中编辑子模块并将其推回。它还显示了一个危险,即如果您运行git submodule update,并且在master分支上有本地未推送的更改,则会悄悄地覆盖更改。
具体来说,在某个地方你有一个共享文件夹'folder' --你需要从所有的git项目中删除它,但是在某个地方创建一个新的git repo,用当前的内容作为初始提交。然后你将在所有共享它的项目中git submodule <repo> folder; git submodule update。它们都可以将更改推送到共享repo,并且可以拉下彼此的更改。

vsaztqbk

vsaztqbk3#

听起来你应该划分公共元素,这样就有了明确的区别,然后使用子模块。确保你清楚地分隔了公共部分,否则你很可能会以一个不可维护的混乱结束。

lx0bsm1f

lx0bsm1f4#

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

相关问题