96SEO 2026-05-27 08:39 4
如何用Git Submodule分离文档与代码?
在开源项目的维护过程中,你是否遇到过这样的困扰:文档geng新频繁触发主项目的 CI/CD 流程?文档部署配置与代码构建配置相互干扰?文档版本与代码版本难以同步?
本文将分享一个优雅的解决方案:使用 Git Submodule 将文档独立为单独仓库,实现文档的独立部署和版本管理,同时保持与主项目的关联。

在 AutoScan 项目的早期,文档直接放在主项目仓库中:
autoscan-spring-boot-starter/
├── docs/
│ └── zh/
├── src/
└── pom.xml
这种架构带来了一系列问题:
文档geng新会触发主项目的 CI/CD 流程,浪费资源
文档部署配置与代码构建配置相互干扰
文档版本与代码版本难以同步
解决方案:使用 Git Submodule通过 Git Submodule,我们Ke以将文档分离到独立的仓库,同时保持与主项目的关联。
┌─────────────────────────────────────────┐
│ autoscan-spring-boot-starter │
│ │
│ │
│ ┌─────────────────────────────────┐ │
│ │ docs/ │ │
│ │ └─> 指向 autoscan-docs 仓库 │ │
│ └─────────────────────────────────┘ │
│ │
│ src/ │
│ pom.xml │
│ README.md │
└─────────────────────────────────────────┘
│
│ submodule 引用
▼
┌─────────────────────────────────────────┐
│ autoscan-docs │
│ │
│ │
│ zh/ │
│ ├── index.html │
│ ├── version.js │
│ └── *.md │
│ │
│ .github/workflows/ │
│ ├── update-doc-version.yml │
│ └── deploy.yml │
└─────────────────────────────────────────┘
具体实施步骤
步骤1:创建文档仓库
# 创建新的文档仓库
mkdir autoscan-docs
cd autoscan-docs
git init
# 创建目录结构
mkdir -p zh/js
# 创建文件
touch zh/index.html
touch zh/version.js
touch zh/_sidebar.md
touch zh/_coverpage.md
# 提交
git add .
git commit -m "init: 初始化文档仓库"
# 推送到远程
git remote add origin https://github.com/itrys/autoscan-docs.git
git push -u origin main
步骤2:迁移文档内容
# 从主项目复制文档文件
cp -r ../autoscan-spring-boot-starter/docs/zh/* zh/
# 提交
git add .
git commit -m "docs: 迁移文档内容"
git push
步骤3:在主项目中添加 Submodule
# 进入主项目目录
cd ../autoscan-spring-boot-starter
# 删除原来的 docs 目录
rm -rf docs
# 添加 submodule
git submodule add https://github.com/itrys/autoscan-docs.git docs
# 提交
git add .
git commit -m "chore: 使用 submodule 引用文档仓库"
git push
步骤4:配置文档仓库的 GitHub Actions
创建 .github/workflows/deploy.yml
name: Deploy to GitHub Pages
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./
版本同步策略
发布新版本时的流程
# geng新主项目代码并提交...
# geng新 submodule 并提交:
cd docs
git pull origin main
cd ..
git add docs
git commit -m "docs: geng新 v1.1 文档"
git push origin main
然后打 tag:
git tag v1.1.0
git push --tags
. 使用分支管理版本和自动化版本同步
为每个大版本的分支,建立对应的 doc 分支。
例如 v1.x 对应 docs/v1.x。
这样在开发新特性时,docs/main 跟随开发分支,而稳定版本的doc则在对应的维护分支。
yml name : Update Docs Version on : push : tags : - 'v*'
jobs : update-docs : runs-on : ubuntu-latest steps :
# 根据 tag 版本geng新对应 docs 分支的引用
这个方案完美解决了我们的痛点:
独立部署各自用Zui合适的工具。
精确追踪每个代码版本的对应doc。
开发体验好该干嘛就干嘛,互不干扰。
省心省力自动化同步版本。
Ru果这篇文章对你有帮助,欢迎点赞、收藏、关注! 🎉
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback