如何同步不同Git仓库中两个指定分支的内容
Git跨分支跨仓库无历史同步方案
Git原生支持该需求,无需手动复制文件,以下是两种常用实现方案:
方案一:添加临时远程仓库同步(推荐)
操作全程无需手动处理文件,自动处理文件的新增、修改、删除逻辑:
- 进入本地仓库B的目录,切换到目标分支
y并拉取最新内容,确保工作区无未提交的变更:
git checkout y git pull origin y
- 将仓库A添加为仓库B的临时远程仓库:
git remote add repo-A <仓库A的克隆地址>
- 拉取仓库A的分支数据:
git fetch repo-A
- 直接将仓库A的
x分支全量内容覆盖到当前工作区,不携带任何A仓库的提交历史:
git checkout repo-A/x -- .
命令末尾的
.代表当前目录,即把A的x分支所有文件同步到当前B仓库y分支的工作区
- 提交同步后的变更:
git commit -m "同步仓库A x分支内容到y分支"
- (可选)删除临时添加的仓库A远程地址:
git remote remove repo-A
- 推送到仓库B的远程
y分支即可完成同步:
git push origin y
方案二:快照导出同步
适合两个仓库均已克隆到本地的场景,无需配置远程地址:
- 进入本地仓库A的目录,执行命令直接将
x分支的全量快照导出并解压到仓库B的目录下:
git archive --format=tar x | (cd <替换为仓库B的本地绝对路径> && tar xvf -)
- 进入仓库B的目录,切换到
y分支,提交所有变更后推送即可。
注意事项
操作前请确保仓库B的y分支本地未提交的变更已提前处理,避免内容覆盖丢失。
内容的提问来源于stack exchange,提问作者Raghav Rathi
相关产品推荐
相关产品推荐

