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