使用Git还是SVN学习版本控制?

3

我所在的团队目前使用SVN,我们正在考虑转向Git。我个人已经使用Git(实际上正在使用git-svn来桥接回到主要的SVN存储库),因此我确信它有很多优点。

一个担忧是Git比SVN更复杂。我们有一些需要从头学习版本控制的新手。任何有没有直接通过Git教授版本控制的经验?我在想这是否会太难了,或者不必解开基于SVN的期望,反而更容易。

有没有任何一种方法的经验 - 直接跳入Git,还是先熟悉svn?


7
如果他们没有版本控制的背景,我认为他们可以直接使用git,这样可能更好。这样就不会有什么关于正确操作的先入之见。有时候,当人们太过于执着于旧的概念,比如必须锁定文件并使用基于文件的版本控制工具时,学习新事物会更加困难。 - DJ.
5个回答

9

使用你要使用的工具。没有理由浪费时间去养成在生产环境中不适用的习惯。源代码控制并不是神秘的技术 - 不要让它变得比必须的更加困难。


我发现开发团队经常会通过滥用源代码控制系统而陷入麻烦,使其变得过于复杂和难以维护。仅仅因为一个系统“能够”做某事,并不意味着那是最好的方法。保持简单 :) - Fraser Graham

8
我认为这取决于用户数量和设置,对于小型用户群体而言,如果没有太多分支或特殊功能,学习Git实际上非常简单,源代码控制的核心概念是相同的。当您拥有更复杂的项目管理策略以及多个分支和开发人员时,它开始分叉。
因此,如果您有一个小团队,我建议直接使用Git。
如果您有一个较大的团队并且直接使用Git,则需要准备好在更好地了解该系统后重新配置存储库的可能性。

4
学习git的曲线纯属地狱。一点点学起来容易,但也很危险 :-) 然而,在许多方面它是一个好工具,我认为你的用户先学svn并不能受益良多。许多git的优势(分支和合并、克隆、断开提交)在svn环境中没有意义,或者它们的工作方式不同。
以下是我教授git时告诉人们的一些事情:
  • Git Magic 开始。
  • 不要期望所有的东西都能理解。
  • 在表面上,git 命令似乎非常强大和正交,因此许多组合都能工作。但是不要被骗了,不是每个组合都能工作;例如,永远不要尝试向已经检出工作文件的存储库推送,特别是它们有更改。瞬间丢失!
  • 坚持 git 设计的模型:每个开发人员维护一个工作 repo 和一个公共 repo。你对你的工作 repo 进行更改,将它们推送到你的公共 repo,并从其他开发人员的公共 repo 拉取。
  • 不要忘记 pull 不是 push 的对偶;pull 也会执行合并。
  • 不要忘记,在所有本地更改提交之前,不能进行合并。
  • 使用 git-gui 来管理提交和索引 :-)

0

我不知道哪个更好,但是Git展示了一些关于源代码控制的“高级”思想,即使当时我只知道SVN,我也希望我能够了解这些。

如果你能够应对学习曲线,我会推荐使用Git。


5
Git的学习曲线不高,而SVN有很高的“反学习”曲线。当与不熟悉这两种工具的人一起工作时,你可以观察到其中的差异。 - Dustin

0
我和你处于类似的境地:在其他人使用普通 svn 的同时,我使用 git-svn。我们的区别在于我们从 VSS 转向了 SVN。试图教会人们关于原子提交的知识已经够难了,我不认为我们会试图强制使用 git。
如果你有新手,我建议直接使用 git,因为当你有本地提交和
rebase -i
时,版本控制就变得更加引人入胜。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接