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

Git操作:如何从指定分支的单个目录拉取提交至当前分支

仅同步指定目录的分支变更

前提准备

确保当前处于branch1分支:

git checkout branch1

如果branch1的directory1有未提交的本地修改,先暂存:

git stash

方法一:直接拉取目标目录的最新状态

适合不需要保留branch1中directory1本地修改,只想同步branch2里directory1当前最终状态的场景:

  1. 从branch2拉取directory1的内容到当前分支:
git checkout branch2 -- directory1/
  1. 提交变更:
git add directory1/
git commit -m "同步branch2中directory1的最新内容"

方法二:选择性合并涉及目标目录的提交

适合需要保留branch2中directory1的提交历史,或者branch1的directory1有自己的修改需要合并的场景:

  1. 查看branch2领先于branch1且涉及directory1的所有提交(可选,用于确认变更来源):
git log branch1..branch2 -- directory1/
  1. 批量应用这些提交中仅涉及directory1的变更(-n参数表示不自动提交,方便处理冲突):
git cherry-pick -n branch1..branch2 -- directory1/
  1. 若有冲突,手动解决后执行提交:
git add directory1/
git commit -m "从branch2 cherry-pick directory1的相关变更"

方法三:合并分支但仅保留目标目录变更

适合需要记录分支合并关系,但完全忽略directory2变更的场景:

  1. 用ours策略合并branch2,此策略会保留branch1的所有内容,忽略branch2的变更:
git merge -s ours branch2
  1. 拉取branch2中directory1的内容覆盖当前分支的对应目录:
git checkout branch2 -- directory1/
  1. 修改合并提交,纳入directory1的变更:
git add directory1/
git commit --amend --no-edit

后续操作

如果之前暂存了本地修改,恢复:

git stash pop

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:33:15