同一目录下的多个 git

Posted

技术标签:

【中文标题】同一目录下的多个 git【英文标题】:multiple gits under same directory 【发布时间】:2016-03-16 15:34:49 【问题描述】:

如何在同一个目录结构下拥有 2 个 git repo?

基本上,我有 1 个用于通用源代码的 git 存储库,我想要第二个 git 存储库来存档客户特定信息;正在配置设置、图像、上传,...

我在这个目录结构下有客户。

           client
git-1       /src
git-2       /src/custom
git-1       /public/index.php
git-2       /public/assets
git-2       /public/uploads
git-2       /config

git-1 将存储这些路径的源代码

client/src 
client/public/index.php

git-2 - 我想存档客户的特定信息

client/src/custom
client/config
client/public/assets
client/public/uploads

【问题讨论】:

您能否介绍一下您为什么选择将一个项目拆分为两个存储库的背景? 我在 repo-1 中有主要软件,我想在 repo-2 中进行自定义和配置设置。配置设置是每个客户端自定义的,一些客户端有自定义代码。 【参考方案1】:

从技术上讲,没有什么能阻止你做你想做的事。 您只需要为单个项目管理 2 个 git 存储库,这可能会导致工作流程不稳定,并且如果/当您想回滚到以前的提交/发布时,您必须弄清楚提交的时间和行正确更新您的提交,以确保您的客户特定信息与您的源代码兼容。

然而,Git 并不是为这样使用而设计的。一个通用的、稳定的和推荐的 Git 设置是 1 个项目的 1 个存储库(以及由依赖项管理器管理的任何依赖项)。

注意:您可以使用 Git submodules 将它们作为 1 个主 Git 存储库下的 2 个独立 Git 存储库进行管理;虽然这通常用于使用其他项目作为子模块的大型项目。


通读 cmets 到您的问题,您为什么不创建一个 Git 存储库,其中包含您的所有源代码等以及虚拟客户端信息?

然后,当您想将源代码用于新客户端时,只需 fork 您的 Git 存储库并将虚拟数据替换为客户端数据。 如果您对源代码进行了更改,则可以将您的分叉存储库与原始 Git 存储库重新定位/同步。

【讨论】:

以上是关于同一目录下的多个 git的主要内容,如果未能解决你的问题,请参考以下文章

7zip:在C#中,如何将不同目录下的多个同名文件添加到同一个zip文件中?

Git多账号设置(同一个邮箱,多个账号)

单个目录指向多个git存储库

GO语言系列

如何在同一目录的 Windows 终端中打开一个新的 git-bash 选项卡?

大型工程多个目录下的Makefile写法