2011-11-15 34 views
9

我一直是一个非常狂热的git用户很长一段时间了。不过我经常注意到,经验丰富的SVN用户似乎在使用git时遇到了很多问题。现在我正在寻找资源,让那些习惯了长时间使用SVN并且养成SVN怪癖习惯的人们更容易使用git。SVN用户Git

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

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

是否有任何教程,它映射这些概念,使Git更容易被SVN用户使用它?

+0

虽然它不具有任何特定的方位,以SVN用户,我发现“临Git的”(HTTP: //progit.org/book/)是一个很好的资源,作为一个很长时间的SVN用户来到Git。 – madth3

回答

4

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

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

1

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

另一件事真的帮了我什么对存储库结构的描述,主要是这些头只是提交对象的指针。

2

我们只是有一个SVN工作到Git迁移后。最重要的一件事就是不要吓到用户。不熟悉的工具让人感到不舒服。这就是为什么尽可能平滑过渡至关重要。

  • 帮助设置。 SVN用户可能不知道如何设置ssh密钥
  • 首先告诉他们相似之处。这些命令是非常相似
    • git的承诺
    • git的日志
    • 的Git分支
    • 混帐一段时间,你可以提出更高级的主题
    • 给人们使用时间后合并
  • 他们在新系统上的旧工作流程以及何时准备进入下一级目前的高级主题

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

我们试图建立一个没用的操场。几乎所有不知道Git的人都没有尝试过任何东西。 他们只是想完成他们的工作。并没有时间玩...

总而言之,这是一个很好的成功,有很多人开始使用高级功能。我不会梦想,人们会在发布后两个月内与多个遥控器一起工作,但他们是。他们像专业人员一样分支合并,当他们遇到问题时他们会问。

为了托管我们的存储库,我们决定建立一个内部服务器Gitorious。这有很大的优势。首先它带有一个设计良好的UI,其次是Rails。如果您了解MVC,则可以轻松地根据您的需求对其进行定制。

+0

+1用于'使用旧工作流程的时间'。拥有集中式存储库的Git支持类似SVN的模型。对很多人来说,这很好。 – Barend