我想知道将代码从SVN存储库移动到GIT存储库的推荐方法,以便我们转换开发人员团队并开始使用GIT.
我们可以进行转换并在SVN存储库中完成所有提交吗?
此外,我们的团队目前对SVN感到满意,但是,他们不知道GIT中的分支比SVN容易得多,在哪里可以找到一个证明GIT在分支方面具有强大功能的实际例子?
我对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更加满意; 正如我所提到的,我还是很新的.我几乎没有触及其功能的表面.
我尝试将svn repo克隆到git,但是一些分支在svn根目录中,如下所示.
我试过了
$ git clone svn://url/svn-root -T trunk -b branches -b branch1 -b branch2
Run Code Online (Sandbox Code Playgroud)
和
$ git clone svn://url/svn-root -T trunk -b branches -b .
Run Code Online (Sandbox Code Playgroud)
两者都未能克隆branch1和branch2正确.请帮忙.
svn-root
??? branch1
??? branch2
??? branches
? ??? branch3
? ??? branch4
??? trunk
Run Code Online (Sandbox Code Playgroud) 我想将我们的 SVN 存储库迁移到git.
我们当前的存储库是一个巨大的单例堆,包含许多 Visual Studio 解决方案,所有解决方案都驻留在存储库的单独子目录中。
当将其转换为时,git我想将 SVN 存储库拆分为git每个解决方案的单独存储库,同时维护每个解决方案的历史记录。
我不希望在我们未来的所有git存储库中保留整个 SVN 存储库的历史记录。我在这些未来的git存储库中想要的只是特定子目录的历史记录。
这可能吗?
当前SVN存储库文件结构:
svn_base
|-- Solution1
| |-- 1.cs
| |-- 1.csproj
| |-- 1.sln
|-- Solution1
| |-- 2.cs
| |-- 2.csproj
| |-- 2.sln
|-- Solution3
| |-- 3.cs
| |-- 3.csproj
| |-- 3.sln
Run Code Online (Sandbox Code Playgroud)
所需的git存储库文件结构:
Solution1
|-- .git
|-- 1.cs
|-- 1.csproj
|-- 1.sln
Solution2
|-- .git
|-- 2.cs
|-- 2.csproj
|-- 2.sln …Run Code Online (Sandbox Code Playgroud)