我应该从哪里开始学习版本控制系统?我过去使用过 SVN、Team Foundation 和 Sourcesafe,但我并不觉得我完全掌握了它们,而且我的团队似乎也没有掌握它。

哪些要点最需要掌握?我意识到这对于不同的 VCS 是不同的,但为了这个问题,我们可以假设 Subversion 是我最有兴趣了解的 VCS。

另外,如果可以的话,请推荐您认为有用的有关该主题的任何书籍。

有帮助吗?

解决方案

关于修订控制的维基百科文章是一个很好的起点

版本控制

当我试图教我的同事时,我发现让他理解最后的词汇是开始向他介绍源代码控制技术的好方法。

不知道什么是分行?去了解一下它们是如何工作的:)

有一本免费的在线颠覆书籍: 使用 Subversion 进行版本控制 这提供了宝贵的参考。

其他提示

我认为关于源代码控制系统,人们必须学习的最重要的一点如下:

  • 小而频繁的签入/提交的价值
  • 标记、分支和合并
  • 回滚
  • 解决冲突
  • 独家对比非排他性结账
  • 持续集成
  • 相对于源控制系统的测试驱动开发和自动化单元测试
  • 分叉

如果您已经掌握了这些主要概念,那么这几乎就是您需要了解的源代码控制的大部分内容:)

有几本关于该主题的免费电子书。尝试:

使用 Subversion 进行版本控制: 颠覆的版本控制

Subversion 版本控制 (PDF): 颠覆版本控制

我已阅读并推荐前者。还没读过《Subversion 版本控制》,但看起来相当深入。

回答你的问题:哪些是需要掌握的最重要的要点,我建议在完成整个签入和签出过程、回滚到旧版本并执行差异之后,您应该看看分支。分支可以帮助您处理处于大型变更中并突然需要执行错误修复并将其部署到生产中的痛苦,而无需混合正在处理的半成品。

我认为 Subversion 文档是一个很好的起点。我发现维基百科并没有真正的帮助,因为它只涵盖了“基本”观点。

在里面 颠覆之书 alex 提到,我特别推荐第 1 章,尽管如果您已经有一些 Svn 经验,那么这可能太低了。第 4 章详细介绍了分支和合并,但技术性很强。

对我帮助很大的是 TortoiseSVN 文档中的日常使用指南;它以教程的形式涵盖了最重要的操作。

我想你需要掌握的最重要的事情是 分支、合并和标记. 。理解这些需要时间和练习,所以我强烈推荐本地存储库中的一个小型宠物项目,以便您可以进行实验。我认为重要的是要认识到整个系统是基于差异的:合并只不过是自动将一个分支中所做的更改应用到另一个分支中的代码,而不是您自己更正代码。像冲突这样的事情(我花了很多时间才理解)只是这种情况的后果。

但当然,我还在学习:)

我也和你一样,从来没有真正对 SVN 或 SourceSafe 感到 100% 舒服。

查看 水银. 快速开始备忘单
也很棒 来自 DongWoo Lee 的备忘单 (他的网站好像挂了,所以我扫描了它并上传到我的网站上)

有了 Mercurial,一切看起来都更加顺利和容易,不知道为什么,因为它与其他人的命令并没有那么不同。

我不确定您对版本控制系统有多少经验,但是对于那些对此概念没有先验知识的人,我建议阅读本书的前几章。 颠覆书. 。其中描述的一些内容是 Subversion 特有的,但许多概念对于版本控制系统以及如何使用它们来说是“通用的”。

我认为人们在开始使用版本控制系统之前努力理解版本控制系统背后的主要概念和基本原理非常重要。我经常看到开发人员只使用系统功能的一小部分,因为他们不理解底层概念,因此要么看不到使用他们认为的“高级”或“不必要”功能的意义,要么他们是只是害怕这样做,因为担心会破坏某些东西或给项目带来问题。

过去许多开发人员都经历过这种现象,我最近写了一份我认为的总结 版本控制的最佳实践 在我的博客上。

读这个: 软件如何发展

查看 胃肠道. 。关于它的一个谈话 这里.

恕我直言,配置管理的最佳网络资源是 ACME 项目 布拉德·阿普尔顿

您应该阅读所有 SCM 模式和反模式。所有 SCM 技术术语在此站点上都有明确的定义,并且有许多关于分支技术、敏捷 SCM 和其他重要内容的文章。

这可能会给您足够的理论背景来处理任何特定的版本工具。

至于 Subversion 的书,它可能会是官方的 颠覆书 上面提到过。它可以免费在线获取,也可以购买硬拷贝。

恕我直言,这是 这本书: :Berczuk 关于 SCM 模式的书

Eric Sink 的版本控制示例 很好而且很容易遵循

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top