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

tbe*_*eda 50 git

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

mck*_*eed 15

我会尝试制作所有重叠的部分git子模块.

  • 经过一些研究,我似乎无法将共享资源编辑为子模块.理想情况下,我们希望能够编辑包含在其中的其他项目的共享,但保留一个中心位置.子模块仍然可以实现这一点吗? (4认同)
  • 处理它们所包含的任何项目的人员将能够对子模块进行更改,但必须单独跟踪更改.没有办法将更改推送到git repo并让它知道某些更改也应该推送到其他一些repo. (2认同)

小智 7

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

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

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

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


Pet*_*ter 6

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


Xia*_* Qi 6

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