SVN用户使用Git

  • 本文关键字:Git 用户 SVN git svn
  • 更新时间 :
  • 英文 :


我已经是一个非常热心的git用户很长一段时间了。然而,我经常注意到经验丰富的SVN用户在使用git时似乎有很多问题。现在,我正在寻找资源,让那些已经习惯使用SVN很长一段时间,并且已经习惯了SVN的怪癖的人更容易使用git。

我知道有git svn速成班,但这并没有真正给出我需要的信息。虽然这很容易将常见的SVN命令映射到类似的Git命令,但人们倾向于使用更复杂的工作流,这些工作流通常不容易通过将命令从一个工具映射到另一个工具来映射。

例如,我认识的许多人通常倾向于在不同的目录中保存一个版本化软件的多个版本,以便能够轻松地在版本之间切换。对我来说,这似乎是一个笨拙的解决方案,Git可以通过git stash, git checkout工作流轻松处理。我还注意到,使用SVN的人往往对分支有不同的看法。然而在SVN中,来自分支的所有提交都完全属于该分支(因为它们涉及该目录),在Git中,真的没有"来自分支的提交"这样的事情,因为每个分支都会包含从当前分支状态可访问的所有提交。

有什么教程,映射这些概念,使Git更容易访问的SVN用户被迫使用它吗?

我们刚刚完成了SVN到Git的迁移。最重要的一点是,不要吓到用户。不熟悉的工具让人不舒服。这就是为什么要使过渡尽可能顺利的原因。

  • 帮助安装。SVN用户可能不知道如何设置ssh密钥
  • 先告诉他们相似点。这些命令非常相似
    • git提交
    • git日志
    • <
    • git分支/gh>
    • git合并
  • 一段时间后,您可以展示更高级的主题
  • 给人们时间在新系统上使用他们的旧工作流程,当他们准备好进入下一个级别时,呈现高级主题

不是所有的人都会以同样的速度前进,有些人甚至可能使用Git来替代SVN。这本身不是问题。更重要的是,那些愿意学习更多知识的人,以及那些想按照设计的方式使用工具的人,得到适当的支持。他们会帮助别人取得一些进步。

我们试图建立一个操场,这是相当无用的。几乎所有不知道Git的人都没有尝试任何东西。他们只是想把工作做完。没有时间玩…

总之,这是一个很好的成功,有很多人开始使用高级功能。我做梦也没想到,人们会在发布仅仅两个月后就使用多个遥控器,但事实确实如此。他们像专业人士一样分支和合并,当他们有问题时,他们会问。

为了承载我们的存储库,我们决定建立一个内部的Gitorious服务器。这有一些很大的优势。首先,它有一个精心设计的UI,其次,它就是Rails。如果你知道MVC,你可以很容易地定制它,以满足您的需要。

在我看来,试图用svn术语来描述Git,或者反之,将是一个徒劳的任务。我认为这两者本质上是不同的。

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

同样来自SVN,在完成gitimmersion.com上的实验后,我更好地处理了git

我认为对于来自SVN思维模式的人来说,关键的区别在于git尊重"签入代码"one_answers"与团队共享代码"作为不同的操作,SVN在提交子命令中将它们混在一起(经验丰富的SVN用户甚至没有意识到它们是不同的操作—我没有)。这就是分支的自由,以及重新排序和压缩提交的选择,所以理解这一点至关重要。

另一件对我很有帮助的事情是对存储库结构的描述,主要是头只是提交对象的指针。

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

最新更新