使用git管理svn项目

292 阅读2分钟

svn项目的目录及项目地址如下图所示

1680508393522.jpg

1、克隆svn

命令格式:git svn clone <svn仓库路径> [本地文件夹名] [其他参数] 参数说明:

  • -s 告诉 Git 该 Subversion 仓库遵循了基本的分支和标签命名法则,也就是标准布局。
    如果你的主干(trunk,相当于非分布式版本控制里的master分支,代表开发的主线),分支(branches)或者标签(tags)以不同的方式命名,则应做出相应改变。
    -s参数其实是-T trunk -b branches -t tags的缩写,这些参数告诉git这些文件夹与git分支、tag、master的对应关系。
  • --prefix=svn/ 给svn的所有remote名称增加了一个前缀svn,这样比较统一,而且可以防止warning: refname 'xxx' is ambiguous.

示例如下图

1680509462447.jpg

2、修改git-svn分支位置

打开git的配置文件config进行修改。需要把.git隐藏文件显示出来,然后找到config文件 --> E:\测试git-svn\git-project\ .git\config

url --> 改为svn项目中的目录地址 svn://..../svn-project

fetch --> 把:左侧改为svn项目中的主干文件名

branches --> 把:左侧改为svn项目中的分支文件名

tags --> 把:左侧改为svn项目中的标签文件名(示例中选择删除)

示例如下图

打开文件

4.jpg

修改前

1680509831084.jpg

修改后

2.jpg

:的左侧是SVN Repo中的路径,而右侧则是该路径,如git remote分支列表中所示。

3、刷新分支重新生成

删除.git/svn/.metadata并运行git svn fetch以刷新分支列表并重新生成它。 git branch -r然后应显示额外的分支

示例如下图

3.jpg

5.jpg

4、创建本地分支

git checkout -b <本地分支名称> <远程分支名称>

示例如下图

6.jpg

5、工作流程

  1. 在本地工作,完成后add,然后commit到对应本地分支上。
  2. git svn rebase 从svn上更新代码, 相当于svn的update。
  3. git svn dcommit 提交你的commit到svn远程仓库,建议提交前都先运行下git svn rebase。

6、参考文章

关于git svn:Git-SVN具有多个分支位置?

git-svn:通过git来管理svn代码