SVN迁移Git
①本地SVN库转本地Git库
情况一:不想保留svn提交记录
- 删除svn目录文件中的.svn文件夹隐藏文件
- 创建远程Git仓库,并通过SourceTree等工具将Git仓库拉取下来
- 直接将删除了.svn文件夹的整个目录移到本地Git仓库中,提交推送即可
情况二:想保留svn提交记录和结构
1. 如果svn仓库是按照标准的tags、trunk、branches结构划分的,则git-svn会将对应的分支、标签识别存放到git的结构中。 如果不加-s,不会将tags、branch按照git的结构进行划分 。
$ git svn clone -s http://svnurl/yourrepo
2. 如果svn仓库是非标准结构的,则可以用“-T 主干名 -b 分支名 -t 标签名”参数分别指定归类。
// 其中,如果只关注主干svn提交记录,则可以将分支和标签参数省略
$ git svn clone http://svnurl/yourrepo -T trunk -b branches -t release
// 这里指定了svn库中的rpm目录是主干、branches目录是分支集,release目录是标签集,而`project1`下的其他目录会被忽视
$ git svn clone http://svnurl/yourrepo/project1 -T rpm -b branches -t release
3.从指定svn版本记录开始恢复
// 检索从v10到现在的所有历史记录
git svn clone -s -r10:HEAD http://svnurl/yourrepo
②本地Git库跟踪远程Git库
在本地的Git仓库中,增加远程git remote 地址:
$ git remote add origin http://xxx.xxx.xxx/xxx/xxx.git
也可以在SourceTree等工具中,先添加本地Git库,然后设置远程git remote地址
备注
远程git先把master删除了,然后直接使用本地Git库作为master