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

如何将Git本地分支从一个工作副本复制到其他副本(无需推送到远程)

用Git原生操作复制本地分支到其他工作副本(无需推远程)

当然有专业的Git原生做法,完全符合你的需求——不需要推送分支到远程,复制后分支独立、后续提交互不干扰。我给你分享两个最常用的方案:

方案一:用git bundle打包分支(适合跨机器/需要传输的场景)

git bundle是Git专门用来打包分支历史的工具,生成单一文件,方便复制到任何地方:

  • 在源仓库里,把需要复制的分支打包成bundle文件:

    # 打包单个分支
    git bundle create my-branch.bundle feature/experimental-1
    # 或打包多个分支
    git bundle create my-experiments.bundle feature/exp1 feature/exp2
    

    这个文件包含了分支的所有提交历史,大小比直接复制仓库小很多。

  • 把生成的.bundle文件复制到目标仓库的目录下(U盘拷贝、网盘传输都可以)。

  • 在目标仓库里导入分支:

    # 导入所有打包的分支(保持原分支名)
    git fetch my-experiments.bundle 'refs/heads/*:refs/heads/*'
    # 或只导入特定分支,并自定义目标分支名
    git fetch my-experiments.bundle feature/exp1:my-local-exp1
    

    执行完后,你就能在目标仓库里看到这些本地分支了,完全独立于源分支。

方案二:直接从本地仓库Fetch(适合同一台机器的场景)

如果两个工作副本在同一台电脑上,直接通过本地路径添加临时远程来Fetch更高效:

  • 在目标仓库里,添加源仓库为临时远程:

    git remote add temp-repo /绝对路径/到/源仓库/.git
    # 比如:git remote add temp-repo ~/projects/my-original-repo/.git
    
  • Fetch你需要的分支到目标仓库:

    # 复制单个分支,保持原名称
    git fetch temp-repo feature/exp1:feature/exp1
    # 或复制多个分支
    git fetch temp-repo feature/exp1 feature/exp2
    
  • 完成后移除临时远程(可选,但更干净):

    git remote remove temp-repo
    

这两种方法都是Git原生操作,完全不需要手动复制文件内容,而且导入后的分支是完全独立的——后续你在任何一个副本里提交代码,都不会影响另一个副本的分支,完美匹配你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:05:42