适用于SVN用户的Git

时间:2011-11-15 22:43:03

标签: git svn

我现在已经是一个非常狂热的git用户了。但是我经常注意到经验丰富的SVN用户似乎在使用git时遇到了很多问题。现在我正在寻找资源,让那些习惯长期使用SVN并养成SVN怪癖习惯的人可以使用git。

我知道有git svn crash course,但这并不能真正提供我需要的信息。虽然这很容易将常见的SVN命令映射到类似的Git命令,但人们倾向于使用更复杂的工作流程,这些工作流程通常不能仅通过将命令从一个工具映射到另一个工具来轻松映射。

例如,我认识的很多人通常倾向于在不同的目录中保留多个版本的版本化软件,以便能够在修订版之间轻松切换。对我而言,这似乎是Git通过git stashgit checkout工作流程轻松处理的一种愚蠢的解决方法。我也注意到使用SVN的人倾向于对分支有不同的看法。而在SVN中,来自分支的所有提交完全属于Git中的那个分支(因为它们涉及该目录),实际上并不存在“来自分支的提交”,因为每个分支将包括从当前分支状态可到达的所有提交

是否有任何教程可以映射这些概念,以使强制使用它的SVN用户更容易访问Git?

5 个答案:

答案 0 :(得分:4)

在我看来,尝试使用svn术语描述Git,反之亦然,将是徒劳的任务。我认为这两者根本不同。

在我看来,最好的方法是告诉用户尝试忘记他们对svn的了解,并以开放的心态学习Git。

答案 1 :(得分:2)

我们刚刚在工作中使用了GN迁移的SVN。其中最重要的一点是不要吓唬用户。不熟悉的工具让人不舒服。这就是为什么必须尽可能顺利地进行过渡。

  • 帮助设置。 SVN用户可能不知道如何设置ssh密钥
  • 首先告诉他们相似之处。这些命令非常相似
    • git commit
    • git log
    • git branch
    • git merge
  • 一段时间后,您可以提出更多高级主题
  • 让人们有时间在新系统上使用他们的旧工作流程,以及何时他们准备好进入下一级目前的高级主题

并非所有人都会以相同的速度前进,有些甚至可能会使用Git作为SVN的替代品。这本身并不是问题。更重要的是那些愿意学习更多知识的人和那些想要按照设计方式使用工具的人,获得适当的支持。他们将帮助其他人取得一些进展。

我们试图建立一个相当无用的游乐场。几乎所有不熟悉Git的人都没有尝试任何东西。 他们只是想完成他们的工作。并且没有时间玩......

尽管如此,总而言之,这是一个很好的成功,并且有很多人开始使用高级功能。我不会想到,人们只会在发布后两个月使用多个遥控器,但它们是。他们像专业人士一样分支和合并,当他们遇到问题时,他们会问。

要托管我们的存储库,我们决定设置一个内部Gitorious服务器。这有一些很大的优点。首先它带有一个设计精美的UI,其次只是Rails。如果你了解MVC,你可以根据自己的需要轻松定制它。

答案 2 :(得分:1)

我认为来自SVN思维模式的人的关键区别在于git尊重“签入代码”和“与团队共享代码”作为不同的操作,其中SVN将它们一起在commit子命令(以及经验丰富的SVN用户)中将它们混合在一起甚至没有意识到他们是不同的行动 - 我没有。这使得分支的自由和重新排序和压缩提交的选项成为可能,因此理解这一点至关重要。

另一件事真的帮助了我对存储库结构的描述,主要是head只是指向提交对象的指针。

答案 3 :(得分:1)

也来自SVN,我在gitimmersion.com

完成实验后更好地处理了git

答案 4 :(得分:1)

有很多教程,但我发现这个页面有很好的1-1映射: http://git.or.cz/course/svn.html