由于工作需要,要将原来本地的SVN项目迁移到GIT@OSC,因此记录下,以便日后翻看。
1.安装Git
可以到Git-Download上下载最新版本的git进行安装(git已集成了git-svn),这里在Windows7上安装了Git-1.9.5-preview20150319.exe。
2.编写Authors.txt
Authors.txt这个文件主要是用于将SVN用户映射为Git用户(昵称及其邮箱)。
具体格式:
zhangsan = ZhangSan <zhangsan@163.com>
wangwu = WangWu <wangwu@163.com>
3.Clone SVN项目至本地Git
在本地目录创建一个文件目录,用作Git本地库的根目录,然后将Authors.txt文件COPY至该目录下,然后通过Git Bash来Clone SVN项目至本地Git,如下图1所示:
Git Bash类似于CMD,如下图2所示:
通过命令将remote svn项目clone至本地:
git svn clone svn://192.168.0.200/projects/app-service -t tags -b branches -T trunk -A authors.txt app-service
或者:
git svn clone svn://192.168.0.200/projects/app-service -s -A authors.txt app-service
这里如果svn项目是标准结构:trunk主干、branches分支、tags标签,则可以用“-s”来代替“-t tags -b branches -T trunk”。
获取SVN服务器的最新更新到本地Git库(但一般不会用到该命令):
git svn rebase
4.将SVN tag转成Git tag
通过以下命令可以查看所有的remote分支情况:
git branch -r
将对应的SVN tag转成Git tag的命令:
git tag tagname tags/tagname
删除remote分支命令:
git branch -r -d tags/tagname
5.将SVN branch转成Git branch
将.git\refs\remotes\目录相应分支文件COPY至.git\refs\heads
目录下,就可以将SVN的分支转成Git的本地分支。
通过以下命令可以查看所有的分支情况(包括remote和local):
git branch -a
通过以下命令可以查看所有的remote分支情况:
git branch -r
通过以下命令可以查看所有的local分支情况:
git branch -l
6.Push至Git公共库
可以通过以下命令将本地Git项目Push至远端Git公共库:
git remote add origin https://git.oschina.net/zhangsan/app-service.git
推送本地所有branch至Git公共库
git push -u origin --all
推送本地所有tag至Git公共库
git push -u origin --a
这里origin是标记首次push。