2

我开始了一项新工作,我需要从头开始实施版本控制系统。在我之前的工作中,我使用 Subversion 实现了版本控制(特别是带有 TortoiseSVN、AnkhSVN 和 SubClipse 客户端的 Visual SVN 服务器)。

我最近听说了很多关于 Git 的事情,但我从未使用过它。我在网上阅读的大多数文章都说 Git 比 Subversion 好。我不是问这里哪个更好,所以请把这些评论留给自己。

就我的环境而言,我是一家小型 GIS 公司的首席开发人员。我们主要使用 Python 脚本,偶尔使用 .Net 编写的插件工具。这里还有其他几个可以使用 Python 脚本并且也可以在版本控制下工作。最近,我开始开发我的第一个 Web 应用程序(HTML/Javascript),它也应该受到版本控制。我们都在严格的 Windows 环境中工作,使用专有和开源软件和 API。

我有两个问题:

  1. 如果我已经了解 Subversion,是否值得花时间和精力学习和实施 Git?
  2. 使用 Subversion 后学习 Git 的最佳资源是什么?如何快速入门?
4

5 回答 5

10

问题 1a。学习 Git 值得花时间和精力吗?

是的,它是一个非常流行的 VCS 和 DVCS 的典型代表。任何每天花费超过 5 分钟思考源代码控制的人都应该至少看看 GIT,看看它提供了什么,它的优点和缺点。

问题 1b:实施 Git 是否值得花时间和精力?

Git 和 Subversion 的根本区别在于 Git 是一个分布式版本控制系统,而 Subversion 不是。因此,除非您的工作流程涉及到与您不在同一地点但使用相同代码库的人员,否则 SVN 应该几乎可以满足您所有的 SCM 需求。

由于炒作而迁移到 Git 不是一个明智的决定,此外,Git 工作流程与 Subversion 非常不同,它需要您的团队去适应它,这对于许多开发人员来说有时可能是一个陡峭的学习曲线

问题 2:学习 Git 的最佳资源

这确实是主观的,但正如@Lucas 提到的,Git 手册是一个很好的开始。我的建议如下,按优先顺序排列:

于 2013-02-26T16:54:17.243 回答
2

如果您是从头开始,我认为甚至考虑使用 SVN 的理由绝对为零。您现有的 SVN 知识就像我现有的关于如何使用直剃刀的知识:具有一定的价值,如果您可以使用直剃刀,那么您就有优势。不过,对于日常剃须,我使用的是 Remington。

Git 在各方面都更胜一筹。甚至“学习曲线”的论点也不再成立。有几种高质量的图形工具可用于 Linux 和 Windows(例如 GitHub for Windows),并且 CLI 有一组简化的命令,类似于您在 SVN 中使用的命令集。甚至 Visual Studio 现在在 Visual Studio 2012 Update 2(目前在 RC 中)中也具有一流的 Git 集成,并且其他 IDE 和高级编辑器已经支持了好几年了。Git 进行正确的分支和合并(在许多其他事情中);没有一个集中式系统可以做到,甚至其他 DVCS 也没有 Git 做的那么好。在使用 Git 超过 7 年之后,如果你不能有效地进行分支和合并,我什至不知道 VCS 的意义何在。

于 2013-02-26T17:18:44.497 回答
2

我在我工作的一家公司介绍了 git。是的,这是值得的。Git 更快。Git 有更好的分支和合并支持(包括私有分支)。Git 包括提高生产力的功能,例如 bisect 和 rebase。Git 确实有一个学习曲线——习惯它需要时间。即便如此,这也是值得的。

是的,围绕 git 有很多炒作,但炒作的存在并不能证明缺乏好处,而是证明存在好处。

于 2013-02-26T17:00:19.923 回答
2

如果我已经了解 Subversion,是否值得花时间和精力学习和实施 Git?

是的。以下是三个很好的理由:

  1. 即使您当前的项目不使用 Git,Git 也很有用:即使您在 Subversion 存储库中,git-svn 工具也允许您从 Subversion 签出,就好像它是 Git 存储库一样。优点是您可以在 Subversion 之外对代码进行版本控制以用于检查点。我喜欢对我的代码进行微小的调整,并不断检查这些更改。这样,如果我突然决定不做某事,我可以将我的代码恢复到以前的版本。
  2. 如果您做自己的私人项目,Git 很有用:使用 Subversion 的最佳方式是运行服务器进程。如果没有服务器怎么办?Git 可以在没有服务器的情况下工作,这非常适合用于您自己的个人项目,而这些项目您真的不打算与其他任何人共享。例如,RESTful接口变得非常流行,也许你应该学习它。Git 可以制作一个很棒的版本控制系统来玩弄 REST。
  3. 它可以帮助你完成下一份工作:Git 在工作中越来越受欢迎。想象一家公司采访您和其他几个客户。那家公司使用 Git。你说你知道 Git,而其他候选人说“好吧,我不知道,但我相信我能学会”。谁会得到这份工作?

使用 Subversion 后学习 Git 的最佳资源是什么?如何快速入门?

最好的方法是玩弄它。有一个在线的Git Manual,但它不如 Subversion 的手册那么好或完整。但是,您已经了解版本控制,因此您已经熟悉版本控制术语(分支、签出、标记等),因此应该不会太难。我建议在GitHub 上建立一个项目,这样你就会习惯 Git 所涉及的推/拉问题。

于 2013-02-26T17:30:24.267 回答
1

如果我已经了解 Subversion,是否值得花时间和精力学习和实施 Git?

无关。在学习 Git 之前,你必须忘记大部分 SVN 经验:它在很多方面都是非常规和非传统的

使用 Subversion 后学习 Git 的最佳资源是什么?如何快速入门?

颠覆之后 - 没有。对于清洁大脑,它是有帮助的(必须),Git Book和最近的酒吧或商店用首选的烈性饮料作为“神经”的治疗方法

于 2013-02-26T20:16:10.260 回答