繁体   English   中英

一个文件夹中有多个 git 存储库?

[英]Multiple git repos in one folder?

是否可以在 git 上有一个文件夹结构,其中包含多个存储库?

例如:

<owner>
    <folder 1>
        <folder 1.1>
            <repo>
        <folder 1.2>
            <repo>
        . . .
    <folder 2>
        <folder 2.1>
            <repo>
        <folder 2.2>
            <repo>
        . . .
    <folder 3>
        <folder 3.1>
            <repo>
        <folder 3.2>
            <repo>
        . . .

假设所有者也是一个 git 存储库,那么看看git submodules 否则,我不明白为什么不这样做。

如果您打算在远程仓库(gitlab、github)中使用这种结构,我看不出有任何障碍。 这同样适用于本地仓库。

基本上 gitlab 允许您创建子组(文件夹 1、文件夹 1.2、...),并根据需要在该子组中放置任意数量的存储库。

在你的情况下:

  1. owner是一个基本子组
  2. 文件夹 1是 1 级子组
  3. 文件夹 1.1是 2 级子组
  4. repo是 2 级子组的 repo
  5. 文件夹 1.2是 2 级子组
  6. repo是 2 级子组的 repo

如果您的问题正确,您不需要 git 子模块。 如果您必须将一个存储库作为文件夹注入另一个存储库并使其内容同步,则需要子模块。

您当然可以将您的存储库组织到该文件夹结构中,问题是如何管理它们。 为此,我编写了一个命令行工具gita

它可以显示所有repos的状态,包括编辑状态、与远程分支的关系等。它还可以从任何工作目录批量执行命令。

您还可以对存储库进行分组。 对于您的项目结构,您可以运行

gita add -a <owner>

这将自动生成分层组:

  • owner : 包含所有 repos
  • owner-folder1 :其中的存储库
  • owner-folder1-folder1.1 :那里的仓库
  • ETC

然后gita ll owner , gita ll owner-folder1等会显示相关信息。 gita <command> owner将在所有者组中的 repos 上批量运行命令。 您也可以从任何工作目录对任何指定的 repos 运行任何命令。

还有其他功能,例如设置上下文、定义自定义命令等。安装是pip3 install -U gita 您可以找到有关github的更多信息。

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM