迁移SVN项目至GIT

Posted 晋建

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迁移SVN项目至GIT相关的知识,希望对你有一定的参考价值。

第一步:

 

在当前目录下新建users.txt 


第二步:

git svn clone --stdlayout --no-metadata -A users.txt http://svn.domain.com.au/svn/repository/favourite-project  favourite-project

等待git将svn项目转换成远程git仓库,自动生成favourite-project文件夹


第三步:

cd favourite-project 切换至项目目录

git remote add origin gitAccount@git.domain.com.au:dev-team/favourite-project.git

与远程.git建立关联,origin为远程主机名


第四步:

git push --set-upstream origin master 

将本地项目仓库推送至master, origin为远程主机名,master为分支名


持续更新及Tag支持:

  1. git svn clone将svn项目主目录及分支转换成远程git仓库如下形式:

    remotes/origin/master     (git 远程分支master)

    remotes/origin/trunk        (svn主目录)

    remotes/origin/uat-2876  (svn分支)

    remotes/origin/tag1          (svn的tag被转成分支)

    即git将svn项目的主目录、分支分别转换城了git远程分支,后续仍然可以从SVN更新local git项目


  2. 转换完成后继续从SVN更新代码同步至git:

    git checkout master

    git rebase remotes/origin/trunk     (继续从SVN主目录更新代码至local)

    git push origin master:master


  3. 将SVN分支同步至远程git:

    git checkout -b uat-2876 remotes/origin/uat-2876

    git push origin uat-2876:uat-2876

  4. 将SVN tag同步至远程git:

     git checkout -b tag1 remotes/origin/tag1  (创建分支)

     git tag tag1 tag1      (创建tag)

     git branch -D tag1   (删除分支)

     git push origin --tags  (推送tag到远程git)

     git tag                    (查看所有tag)


其他命令:

     git log --pretty=oneline

    Existing folder>

     cd existing folder

     git init

     git remote add origin http://git.xx.xx.com.cn/group/project.git

     git add .

     git commit -m "Initial commit"

     git push -u origin master

    Create a new repository>

    git clone http://git.xx.xx.com.cn/group/project.git

    cd project

    touch README.md

    git README.md

    git commit -m "add README"

    git push -u origin master


这样就完成啦~( •̀ ω •́ )y

以上是关于迁移SVN项目至GIT的主要内容,如果未能解决你的问题,请参考以下文章

Linux服务器SVN配置及管理项目迁移

从 SVN 迁移到 Git 存储库,其中同一项目的一部分已经发生迁移

SVN迁移到GIT

SVN项目迁移到Git上(并带有完整的提交记录)

Git 实践:SVN 迁移 Git

SVN迁移到git