我对Git比较陌生,但我发现在家工作很容易,我想在我们的项目存储在Svn存储库中的工作中使用它.不幸的是,存储库略微不标准,我无法克隆它们.当然,它们都有trunk,branches /和tags /,但是在命中实际项目目录之前,branch /和tags /都有子目录:
trunk/
branches/maintenance/release1
branches/maintenance/release2
...
branches/development/feature1
branches/development/feature2
...
tags/build/build1
tags/build/build2
...
tags/release/release1
tags/release/release2
Run Code Online (Sandbox Code Playgroud)
克隆后:
$ git svn clone -s --prefix=svn/ https://mydomain.com/svnproject
$ git branch -r
development
development@1340
maintenance
maintenance@1340
tags/build
tags/build@1340
tags/release
tags/release@1340
trunk
trunk@1340
Run Code Online (Sandbox Code Playgroud)
我没有得到任何实际的项目分支或标签.我实际上需要能够在主干,一个维护分支和一个开发分支上工作.我已经尝试过这种方法,除了修改配置的几个黑客,但没有什么对我有用.
有什么方法可以将我的非标准Svn项目的关键组件放到本地git存储库中,以便我可以轻松地在它们之间移动?
非常感谢.
更新:我应该补充一点,我不能批量切换到Git(尚).还有其他团队成员参与和国际存在.转型的后勤工作比我更愿意承担,直到我对Git更加满意; 正如我所提到的,我还是很新的.我几乎没有触及其功能的表面.
我有一个存储库,其布局如下:
trunk/
projectA
projectB
branches/
projectA-1.0
projectB-1.0
tags/
projectA-1.0.1
projectB-1.0.1
我想将它们转换为单独的git存储库,其中trunk/projectA作为顶级目录,所有它的分支作为git branches.
每当我尝试指定git svn init类似内容时git svn init -T trunk/projectA -b branches -t tags http://svn.example.com,后续操作git svn fetch就会在不同的版本上神秘地失败.有时它会一直到200,有时会停止.
我目前的想法是,我应该创建一个git存储库,它将整个subversion存储库镜像为一个单独的实体,每个项目都有子目录.然后我会用git-filter-branch子目录重写到项目的根目录.
但是,我不确定如何使分支表现得像我想要使用git-filter-branch和.
另外,理想的做法是为每个项目的"主干"创建一个具有不同分支的单个git仓库,在这种情况下我没有问题没有真正拥有主人.