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

Git冲突解决求助:远程仓库领先1提交,本地子模块未提交修改

解决Git子模块本地变更与远程更新冲突的方案

针对你遇到的主仓库远程领先、子模块本地修改无法直接拉取更新的问题,按以下步骤操作:

  1. 暂存所有子模块的本地修改
    先把150个修改过的子模块变更临时暂存,避免拉取远程更新时被覆盖:

    git submodule foreach 'git stash push -m "temp stash for upstream sync"'
    
  2. 拉取主仓库的最新提交
    拉取队友推送的主仓库最新变更:

    git pull origin <你的工作分支名>
    
  3. 同步子模块到远程指定版本
    递归更新所有子模块,让它们切换到主仓库最新提交指向的远程版本:

    git submodule update --init --recursive
    
  4. 恢复子模块的本地修改并处理冲突
    逐个恢复之前暂存的子模块修改,若出现冲突需手动解决:

    git submodule foreach 'git stash pop'
    
    • 若某个子模块弹出暂存时提示冲突,进入该子模块目录,手动编辑冲突文件,保留需要的内容
    • 解决冲突后,在子模块目录执行git add .标记冲突已处理
    • 回到主仓库继续处理其他子模块
  5. 提交并推送所有变更

    • 先提交子模块的修改(包括冲突解决后的内容):
      git submodule foreach 'git commit -m "merge upstream changes with local modifications"'
      
    • 再提交主仓库的变更(包含子模块指向的更新):
      git add .
      git commit -m "sync upstream changes and merge local submodule modifications"
      
    • 最后推送主仓库和子模块的所有变更:
      git push origin <你的工作分支名>
      

额外提示

  • 如果部分子模块的本地修改不需要保留,可以跳过暂存步骤,直接在子模块目录执行git reset --hard放弃修改后再更新
  • 操作前建议备份本地仓库,避免意外丢失修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:52:04