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

如何将类SVN Fork结构迁移至Azure Git并保留双向合并能力?

SVN到Azure Git迁移并实现双向合并Fork结构方案

一、迁移Project1到Azure Git

  1. 本地使用git-svn克隆SVN的Project1仓库,保留标准trunk/tags/branches布局:
    git svn clone --stdlayout --no-metadata --authors-file=users.txt <SVN仓库中Project1的根URL> Project1-git
    
    • 可选--authors-file参数,用于映射SVN作者到Git身份,格式为svn_username = Git Name <git_email@example.com>
  2. 进入本地仓库,添加Azure Git的Project1远程地址:
    cd Project1-git
    git remote add azure <Azure Git上Project1的仓库URL>
    
  3. 推送所有分支和标签到Azure Git:
    git push azure --all
    git push azure --tags
    

二、将Project2迁移为Project1的Azure Git Fork

  1. 在Azure Git界面找到已创建的Project1仓库,点击「Fork」创建对应名称的Project2仓库。
  2. 本地克隆SVN的Project2仓库:
    git svn clone --stdlayout --no-metadata --authors-file=users.txt <SVN仓库中Project2的根URL> Project2-git
    
  3. 进入Project2本地仓库,配置两个远程源:
    cd Project2-git
    git remote add origin <Azure Git上Project2的仓库URL>
    git remote add upstream <Azure Git上Project1的仓库URL>
    
  4. 推送Project2的所有分支和标签到Azure Git Fork仓库:
    git push origin --all
    git push origin --tags
    

三、配置双向合并流程

1. 从Project1全量同步到Project2

在Project2本地仓库执行以下步骤:

# 拉取Project1的最新代码
git fetch upstream
# 切换到主分支(如main/trunk)
git checkout main
# 合并上游代码(--no-ff保留合并历史)
git merge upstream/main --no-ff
# 推送同步后的代码到Project2仓库
git push origin main

可将上述步骤封装为脚本,定期执行以保持同步。

2. 将Project2的部分提交合并到Project1

方式一:本地挑选提交后推送

# 找到Project2中需要合并的提交ID(如abc123)
# 基于Project1最新代码创建临时分支
git checkout upstream/main -b cherry-pick-branch
# 挑选目标提交
git cherry-pick abc123
# 推送临时分支到Project1仓库,创建Pull Request
git push azure cherry-pick-branch

随后在Azure Git界面创建Pull Request,审核通过后合并到Project1主分支。

方式二:Azure Git界面创建选择性PR

  1. 在Project2的Azure仓库中,基于需要合并的提交创建新分支,确保分支仅包含目标提交。
  2. 从该分支向Project1主分支创建Pull Request,明确说明包含的提交内容,审核通过后完成合并。

注意事项

  • 迁移前备份SVN仓库,避免数据丢失。
  • 若SVN存在复杂分支合并历史,迁移后需验证Git历史的准确性。
  • 双向合并前需拉取最新代码,本地解决冲突后再推送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 20:15:13