如何将REPO-A的BRANCH-A中DirA合并至REPO-B的BRANCH-B?
跨Git仓库合并指定目录的最优方案
针对你需要将REPO-A的BRANCH-A分支下的DirA合并到REPO-B的BRANCH-B分支的需求,以下是可靠的Git命令步骤:
- 进入本地REPO-B仓库,切换到目标分支BRANCH-B:
cd /path/to/REPO-B git checkout BRANCH-B
- 把REPO-A设为临时远程仓库(本地路径或远程URL都可以):
# 本地仓库用路径,远程仓库替换成实际URL,比如https://github.com/xxx/REPO-A.git git remote add repo-a /path/to/local/REPO-A
- 拉取REPO-A的分支数据:
git fetch repo-a
方案一:快速合并/替换DirA内容(适合无需保留提交历史的场景)
直接提取BRANCH-A的DirA内容到当前分支,手动处理冲突后提交:
# 提取BRANCH-A的DirA到当前分支 git checkout repo-a/BRANCH-A -- DirA/ # 查看变更状态,处理冲突文件(如果有) git status # 提交变更 git add DirA/ git commit -m "Update DirA from REPO-A BRANCH-A"
方案二:保留DirA提交历史的合并(适合需要追溯变更记录的场景)
用git subtree合并,可选择压缩历史或保留完整提交:
# --squash会把所有相关提交合并成一个,去掉则保留完整历史 git subtree merge --prefix=DirA repo-a/BRANCH-A --squash # 处理冲突后提交(如果有冲突) git add DirA/ git commit -m "Merge DirA history from REPO-A BRANCH-A"
- (可选)完成后移除临时远程仓库:
git remote remove repo-a
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

