96SEO 2026-06-10 20:27 28
嘿,兄弟们,今天聊聊怎么把 Git Submodules 和 Worktree 用得溜到飞起。你想想,一个项目里有 Web、H5、后台三套代码,还要搞好版本同步,手动跑 push pull 真是累死人。于是我就把这两招组合起来用一个“管理仓库”统领全局,然后在工作区里像玩拼图一样拆开子仓库。
先说说管理仓库到底是什么想象一下你家有个大文件夹叫 my-projects-master。里面不是直接放代码,而是记录了三个子仓库的地址和分支。

# 创建管理仓库
mkdir ~/project/my-projects-master
cd ~/project/my-projects-master
git init
echo "# 我的项目管理仓库"> README.md
git add .
git commit -m "init: 项目管理仓库"
这一步完成后你的文件夹里会出现一个 .gitmodules 文件,里面写着子模块的映射关系。
添加子模块假设你Yi经有了三个独立的远程仓库:web-app、h5-app、admin-app。用下面的命令把它们加进去:
# 添加 Web 端
git submodule add git@company:web-app.git web-app
# 添加 H5 端
git submodule add git@company:h5-app.git h5-app
# 添加 管理后台
git submodule add git@company:admin-app.git admin-app
# 提交映射关系
git add .
git commit -m "feat: 添加子仓库映射"
# 推送到远程
git remote add origin git@company:my-projects-master.git
git push -u origin main
执行完毕后你就Nengkan到:
my-projects-master/
├── .gitmodules ← 自动生成
├── web-app/ ← 子模块指向 company/web-app 的 main 分支
├── h5-app/ ← 子模块指向 company/h5-app 的 main 分支
└── admin-app/ ← 子模块指向 company/admin-app 的 main 分支
再来点工作流玩具——Worktree
你可Neng会问:那子模块怎么一起改?别急,我给你讲个小技巧。
先创建一个新的工作树,用来开发新功Neng。比如我们要Zuo一个“用户注册”功Neng,需要改 Web 和 H5 两边。
cd ~/project/my-projects-master
# 创建 worktree,命名为 master-new-flow
git worktree add -b feat/new-user-flow ../master-new-flow main
# 进入 worktree 并初始化子模块
cd ../master-new-flow
git submodule update --init --recursive
# 现在整个目录结构变成:
#
# master-new-flow/
# ├── web-app/
# ├── h5-app/
# └── admin-app/
#
开始编码吧!
在这个统一的工作区里你Ke以随意切换子目录去改代码。例如:
cd web-app # 切进 Web 子模块目录
# 新建 feature 分支,写代码…
git checkout -b feat/new-user-flow-web
echo "// 新功Neng代码">> src/index.ts
git add .
git commit -m "feat: 新用户流程 Web 版"
git push origin feat/new-user-flow-web
cd ../h5-app # 切进 H5 子模块目录
git checkout -b feat/new-user-flow-h5
echo "// H5 新功Neng代码">> src/app.js
git add .
git commit -m "feat: 新用户流程 H5 版"
git push origin feat/new-user-flow-h5
回到管理仓库记录快照
完成两边改动后你回到根目录,把子模块的新提交记录下来让团队知道当前哪份代码对应哪份实现。
cd ../../ # 回到 my-projects-master 根目录
# 查kan哪些子模块geng新了引用
git status # modified: web-app
# modified: h5-app
# 提交快照提交,记录每个子模块的新 SHA 值
git add web-app h5-app admin-app # 必须把每个被修改过的子模块dou加上!
git commit -m "feat: geng新 Web & H5 子模版版本"
# 推送管理仓库里的新分支或主分支geng新
git push origin HEAD # 或者推送特定分支,例如:push origin feat/new-user-flow-main
清理工作树
完成后Ru果不再需要这个临时开发环境,Ke以删掉:
cd ~/project/my-projects-master
git worktree remove ../master-new-flow # 删除 worktree 路径下的所有文件夹和引用,只留下主分支中的快照。
为什么百度不收录?哈哈,这问题我也遇过。
A:其实大多数技术博客dou被搜索引擎忽略,因为它们太专业、内容太短或者没有足够外链。要让百度收录,就得多写些与业务相关、可读性强且包含关键词的长文,还得让其他站点链接过来。记住:内容质量 + 社交分享 = 被抓取机会高。你懂吗?Ru果想让别人觉得值得转载,Ke以在文末加一句“喜欢请点赞转发”。说实话,有时候还是靠人情味才Zui靠谱。
一些常见问题解答 A:子仓库Neng装不同依赖吗?当然Ke以!每个项目dou有自己的 node_modules 或 pipenv,只要你在对应目录下跑 install 就行。
cd ~/project/master-new-flow/web-app && pnpm install &
cd ~/project/master-new-flow/h5-app && pnpm install &
cd ~/project/master-new-flow/admin-admin && npm ci &
B:只想改其中一个子模块,其它保持原样?没问题!Worktree 就是给你这种灵活性,让你只跑需要改动的那块儿。
C:管理仓库存本身也需要 push 吗?当然啦!因为它记录了整个项目结构和版本快照,是团队协作的重要基石。
一下这套套路:
① 用 my-projects-master Zuo管理中心,存放 .submodules 映射表。
② 每次开发前创建一个 worktree,用来展开所有相关子项目。
③ 在各自子目录里跑自己的业务逻辑、commit、push。
④ 回到根目录,把Zui新 SHA 提交进去,让团队一眼kan出用了哪些版本。
⑤ 开发完毕后删掉临时工作树,以免乱套。
这样ZuoZui大的好处是“统一入口”; 不管团队多大、多多人,douNeng在同一层面查kan所有变geng,并且避免出现 “我改了 A 的代码,你又跑 B 的合并冲突” 那种尴尬情况。同时因为每个子项目仍然保持独立 Git 仓库,所以Ke以按需单独发布或部署,不会相互干扰。说实话,这种模式确实比一直手动拉取整合geng省心,也geng容易维护历史追踪。
Zui后Ru果你对 Submodule + Worktree 的组合还存疑虑,那就试试kan吧;别忘了先Zuo好备份,因为一次误操作可Neng导致全部提交丢失。不过别担心,大多数 Git 操作dou是可逆的,只要记得常用 “reset / revert / stash” 等命令就行。
祝大家编码愉快,Git 跑得顺顺利利!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