You need to enable JavaScript to run this app. 如何不使用submodules在Git仓库中嵌套多个独立的Git仓库
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用submodules在Git仓库中嵌套多个独立的Git仓库

Git嵌套独立仓库不被识别为submodule的搭建方案

核心实现逻辑

只要让外层基础仓库完全忽略内部项目仓库所在的目录内容,外层Git就不会检测到内部的.git仓库文件,自然不会自动生成submodule关联。

具体搭建步骤

  • 第一步:配置基础仓库的忽略规则
    在基础仓库(也就是你规划的myTeam目录)根目录下创建/编辑.gitignore文件,添加以下规则:
# 忽略projects目录下的所有内容
/projects/*
# 保留.gitkeep文件,确保空的projects目录可以被提交到基础仓库
!/projects/.gitkeep
  • 第二步:初始化基础仓库目录结构
    按照你规划的层级创建tools、clientDocumentation、projects三个目录,在projects目录下创建空的.gitkeep占位文件:
touch projects/.gitkeep

之后把基础仓库需要托管的工具、客户文档等内容提交推送到远端即可。

  • 第三步:编写项目按需拉取脚本
    你可以在基础仓库的tools目录下编写拉取脚本,示例脚本clone_project.sh内容如下:
#!/bin/bash
# 按需克隆项目脚本
if [ $# -ne 1 ];then
  echo "用法: ./clone_project.sh 项目名(如project1)"
  exit 1
fi
# 替换为你团队的项目仓库公共前缀
GIT_REPO_PREFIX="git@你的Git服务地址:团队组名/"
PROJECT_NAME="$1"

cd projects || exit 1
git clone "${GIT_REPO_PREFIX}${PROJECT_NAME}.git"

给脚本添加执行权限后提交到基础仓库:

chmod +x tools/clone_project.sh

使用说明

新成员入职只需要克隆基础仓库,获取对应项目权限后,执行./tools/clone_project.sh project1就能把对应项目拉取到projects目录下,内层项目仓库完全独立,所有Git操作互不干扰,外层基础仓库完全不会识别到内层项目的存在,自然不会生成submodule关联。

内容的提问来源于stack exchange,提问作者Kasper Jan Mooijman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 18:45:02