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

如何完整复制含子模块的Git分支作为独立备份分支

复制Git分支并保留子模块状态的操作步骤

要完整复制带多个子模块的分支m_branch1为m_branch2,确保子模块状态完全一致,按以下步骤操作:

  1. 确保工作区干净
    执行以下命令检查当前工作区是否有未提交的更改:

    git status
    

    如果存在未提交的文件,要么提交这些更改,要么用git stash暂存后再继续操作。

  2. 切换到源分支
    切换到你要复制的目标分支m_branch1:

    git checkout m_branch1
    
  3. 创建并切换到新分支
    一步完成新分支的创建与切换:

    git checkout -b m_branch2
    

    或者分开执行:

    git branch m_branch2
    git checkout m_branch2
    
  4. 同步子模块到对应状态
    新分支已经复制了源分支中所有子模块的commit哈希记录,但需要确保本地子模块文件与该记录完全匹配,执行:

    git submodule update --init --recursive
    

    这个命令会初始化所有嵌套子模块,并将每个子模块拉取到当前分支记录的特定commit版本,确保与m_branch1的子模块状态完全一致。

  5. 验证结果
    执行以下命令查看子模块状态,确认所有子模块的哈希值与m_branch1中的一致:

    git submodule status
    

注意事项

  • 如果m_branch1中的子模块存在未提交的本地更改,请先进入对应子模块目录提交更改,再回到主分支提交子模块的更新记录,否则新分支将无法保留这些子模块的本地修改(Git分支仅记录子模块的已提交commit哈希)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 12:07:03