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

如何将Branch A的文件/目录复制到Branch B的指定路径?

跨分支复制文件并修改存储位置的操作方法

下面提供两种可行的操作方式,根据你的习惯选择:

方法一:临时目录中转法(直观易上手)

  • 切换到Branch A,把需要的文件和目录复制到项目外的临时目录:
    git checkout branch-a
    # 创建临时目录(如果不存在)
    mkdir -p ~/temp-git-transfer
    # 复制3个头文件
    cp include/*.h ~/temp-git-transfer/
    # 复制目标目录及所有内容
    cp -r src/dir_in_question ~/temp-git-transfer/
    
  • 切换到Branch B,创建目标存储目录并迁移文件:
    git checkout branch-b
    # 创建client目录
    mkdir -p client
    # 复制头文件到client目录
    cp ~/temp-git-transfer/*.h client/
    # 复制目录到client目录
    cp -r ~/temp-git-transfer/dir_in_question client/
    
  • 提交Branch B的变更:
    git add client/
    git commit -m "迁移Branch A的头文件和dir_in_question目录至client目录"
    
  • (可选)清理临时目录:rm -rf ~/temp-git-transfer

方法二:Git原生命令法(高效无临时文件)

直接通过Git命令从Branch A拉取指定文件/目录到Branch B的目标位置,无需中转:

git checkout branch-b
# 创建client目录
mkdir -p client
# 从Branch A拉取头文件并直接解压到client目录
git archive branch-a include/*.h | tar -x -C client/
# 从Branch A拉取目标目录并直接解压到client目录
git archive branch-a src/dir_in_question | tar -x -C client/
# 提交变更
git add client/
git commit -m "迁移Branch A的头文件和dir_in_question目录至client目录"

注意事项

  • 如果两个some_header.h是不同文件(可能是笔误),请替换*.h为具体文件名,避免覆盖;
  • 操作前确保Branch B没有未提交的变更,或者先提交/ stash 现有变更,避免冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 21:26:10