Git迁移SVN含提交记录方法_2023


git-svn

新版本git中已经集成git svn工具,可以用于git和svn之间的转换,在git bash中可以通过 git svn –help 查看相关命令的说明。

git迁移至svn

具体操作

 1. 在svn中建立相关目录
 2. 在svn服务器中新建svn项目XXXXX(可在服务器上直接创建)。
  # svnadmin create XXXXXX
 3. svn项目的本地初次提交(可在服务器上直接创建)

    # svn mkdir  http://IP:PORT/svn/XXXXXX -m "Initial import"

 4. 在git环境里初始化svn

    $ git svn init svn://ip:port/xxx

 5. 获取svn上的更新

    $ git svn fetch

    会得到svn的分支名
     r1 = 1242a1de3082443e16594af0ea276024e49332b4 (refs/remotes/git-svn)

 6. 提交Git项目到svn


    ​$ git svn dcommit
    


==注意:这个时候git会提示==
    Unable to determine upstream SVN information from HEAD history.
    Perhaps the repository is empty. at /usr/local/git/libexec/git-core/git-svn line XXX.

解决方案:

  •     显示svn提交分支的版本号

    # git show-ref git-svn// 显示SVN proj trunk分支的HEAD,即r1
   "$commit-id "  refs/remotes/ git-svn
   

  •    显示Git proj 的第一个commit

   # git log --pretty=oneline master | tail -n 1
    " $graft-id"  initial import

  • 关键的地方原方法已经弃用:弃用支持 .git/info/grafts使用下列新命令
  • git replace --graft  "$commit-id "  " $graft-id"

git replace --graft 32b505c37ef2236bb70c24ab5d7aaf267160fb0f 354ee241f287f2d0fac21efe41aa1505b192d8ba

  • git filter-branch   " $graft-id" ..HEAD

git filter-branch  354ee241f287f2d0fac21efe41aa1505b192d8ba..HEAD

  • git svn dcommit

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值