【问题标题】:How to share files across git repositories?如何跨 git 存储库共享文件?
【发布时间】:2009-10-08 22:31:32
【问题描述】:

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

【问题讨论】:

    标签: git


    【解决方案1】:

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

    【讨论】:

    • 经过一番研究,似乎我无法将共享资源编辑为子模块。理想情况下,我们希望能够编辑它们所包含的其他项目的共享,但保持一个中心位置。子模块仍然可以这样做吗?
    • 从事他们所包含的任何项目的人将能够对子模块进行更改,但必须单独跟踪更改。没有办法将更改推送到 git repo 并让它弄清楚一些更改也应该推送到其他一些 repo。
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-15
          • 1970-01-01
          • 2019-02-10
          • 2011-07-04
          • 1970-01-01
          • 1970-01-01
          • 2012-02-24
          相关资源
          最近更新 更多