You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Git子模块(MySQL)变更推送到本地仓库并同步多设备?

问题解答

首先直接给出结论:仅进入子模块目录执行git add . && git commit -m "Message" && git push无法满足你的需求。原因是Git子模块的同步依赖于其上游远程仓库,你没有权限推送到MySQL子模块的官方上游,其他设备拉取时依然会从原上游获取旧版本,你的本地变更无法同步过去。

下面是符合规范的简洁实现方法:

步骤1:为子模块创建自己的远程仓库

在你有权限的Git平台(如个人GitHub、GitLab)创建一个新仓库,作为你本地MySQL子模块变更的同步仓库。

步骤2:修改子模块的远程地址

进入主项目目录,执行命令将子模块的远程指向你自己的仓库:

git submodule set-url <你的MySQL子模块路径> <你创建的远程仓库地址>

步骤3:提交并推送主项目的变更

  1. 先进入子模块目录,将本地变更推送到你的远程仓库:
    cd <子模块路径>
    git add .
    git commit -m "同步MySQL子模块本地变更"
    git push origin <当前分支>
    
  2. 返回主项目目录,提交子模块的远程地址更新和最新commit记录:
    cd ..
    git add .gitmodules <子模块路径>
    git commit -m "更新子模块远程地址及同步本地变更"
    git push
    

步骤4:其他设备同步变更

在其他设备上拉取主项目的最新代码后,执行以下命令同步子模块:

git pull
git submodule update --init --recursive

注意事项

  • 后续每次子模块有本地变更,都需要先推送到你的远程仓库,再在主项目中提交子模块的最新commit并推送,确保其他设备能同步到变更。
  • 若只是临时同步不想修改主项目配置,可在其他设备的子模块目录中手动执行git remote set-url origin <你的远程仓库地址>,再拉取变更,但这种方式不适合长期维护。

内容的提问来源于stack exchange,提问作者Igor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:40:25