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

Git主仓库因子模块重写历史致提交失效,如何更新?

解决主仓库中子模块失效提交的更新问题

当子模块因rebase强制推送重写历史后,主仓库引用的旧提交会失效,可通过以下Git命令行步骤更新主仓库的子模块引用:

  1. 同步子模块到远程最新状态
    进入子模块目录,拉取远程重写后的最新代码,并强制重置本地分支到远程最新提交:

    cd src/myGitSubmoduleProject
    git fetch origin <certain-branch>
    git reset --hard origin/<certain-branch>
    

    注意:reset --hard会清除子模块本地未提交的修改,执行前请确认本地无未保存的变更。

  2. 更新主仓库的子模块引用
    返回主仓库,将子模块的最新提交引用加入暂存并提交:

    cd ../../
    git add src/myGitSubmoduleProject
    git commit -m "更新子模块引用至rebase后的最新有效提交"
    # 若需推送到远程主仓库,执行以下命令
    git push origin <certain-branch>
    

完成以上步骤后,主仓库就会引用子模块的最新有效提交,其他协作成员拉取主仓库代码后,执行git submodule update --init --recursive即可同步到正确的子模块版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 01:42:38