
Learning Version Control, and learning it well我应该从哪里开始学习版本控制系统? 我过去曾经使用过SVN,Team Foundation和Sourcesafe,但我并不觉得我完全掌握了它,而我的团队似乎也都不了解。 掌握哪些要点最重要? 我知道这在VCS和VCS之间是不同的,但是出于这个问题,我们可以假定Subversion是我最感兴趣的VCS。 另外,如果可以的话,请推荐您认为有用的任何书籍。 有关修订控制的Wikipedia文章是一个不错的起点 版本控制 在尝试教同事时,我发现让他最后理解词汇是向他介绍源代码控制技术的好方法。 不知道什么是分支?去找出它们是如何工作的:) 版本控制和Subversion上有免费的在线Subversion书籍,提供了宝贵的参考。 我通过Eric sink找到了这个有用的Source Control HOWTO 我认为关于源代码控制系统必须学习的最重要的几点如下:
如果您涵盖了这些主要概念,那么对于源代码控制,这几乎是您需要知道的大多数事情:) 有一些关于该主题的免费电子书。尝试:
具有Subversion的版本控制:具有Subversion的版本控制 Subversion版本控制(PDF):Subversion版本控制 我已阅读并建议使用前者。尚未阅读" Subversion版本控制",但看起来很深入。 阅读本文:软件的发展方式 我不确定您在版本控制系统方面有多少经验,但是对于不了解该概念的人,我建议阅读Subversion本书的前几章。其中描述的某些内容特定于Subversion,但许多概念对于版本控制系统以及如何使用它们都是"通用的"。 我认为,在开始使用版本控制系统之前,人们必须努力理解版本控制系统的主要概念和基本原理。我经常看到开发人员只使用其系统功能的一小部分,因为他们不了解基本概念,因此或者看不到使用他们认为"高级"或"不必要"功能的意义,或者只是害怕这样做,以免破坏项目或导致项目问题。 过去在很多开发人员中都经历过这种现象,最近我在博客上总结了我认为是版本控制最佳实践的摘要。 我也和您一样,从未真正对SVN或SourceSafe感到百分百满意。
退房Mercurial。快速入门和备忘单 使用Mercurial,一切似乎都变得更加流畅和容易,不确定为什么,因为命令与其他命令并没有什么不同。 我认为Subversion文档是一个不错的起点。我发现Wikipedia并没有真正的帮助,因为它仅涵盖了"基本"观点。 在alex提到的Subversion书中,我特别推荐第1章,尽管如果您已经对Svn有一定的经验,那可能会太低。第4章详细介绍了分支和合并,但这是非常技术性的。 对我有很大帮助的是TortoiseSVN文档中的《日常使用指南》。它以教程样式介绍了最重要的操作。 我想您需要掌握的最重要的事情是分支,合并和标记。理解这些需要花费时间和精力,因此,我强烈建议您在本地存储库中创建一个小型宠物项目,以便您进行实验。我认为重要的是要意识到整个系统是基于diff的:合并无非就是将一个分支中所做的更改自动应用于另一分支中的代码,而不是自己更正代码。诸如冲突之类的东西(这让我花了很多时间来理解)仅仅是其后果。 但是,当然,我仍然在学习:) 重新回答您的问题:掌握哪些是最重要的一点,我建议您在完成整个签入和签出过程,回滚到旧版本并进行比较后,应该看一下分支。分支可以帮助您解决在进行大型更改时突然遇到的麻烦,即突然需要执行错误修复并将其部署到生产环境中,而无需将正在进行的工作混在一起。 恕我直言,这是本书:Berczuk关于SCM模式的书 恕我直言,配置管理的最佳网络资源将是Brad Appleton的ACME项目
您应该阅读所有SCM模式和反模式。 这可能会为您提供足够的理论背景,以处理任何特定版本的工具。 对于Subversion书籍,可能是上面提到的Official Subversion书籍。它可以在线免费获得,也可以购买印刷版。 查看GIT。在这里谈一谈。 以Eric Sink为例的版本控制很好并且易于遵循 |