【问题标题】:Learning Version Control, and learning it well [closed]学习版本控制,并好好学习[关闭]
【发布时间】:2008-08-12 12:24:11
【问题描述】:

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

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

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

【问题讨论】:

  • 应该是“学得好”,而不是“学得好”。我不敢相信模组错过了这一点。

标签: svn version-control


【解决方案1】:

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

Revision control

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

不知道什么是分支?去看看它们是如何工作的:)

Version Control with Subversion 有一本免费的在线颠覆书,它提供了宝贵的参考资料。

【讨论】:

    【解决方案2】:

    我发现这很有用Source Control HOWTO by Eric sink

    【讨论】:

      【解决方案3】:

      我认为有关源代码控制系统的最重要的一点是:

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

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

      【讨论】:

        【解决方案4】:

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

        使用 Subversion 进行版本控制:Version Control with Subversion

        Subversion 版本控制 (PDF):Subversion Version Control

        我已阅读并推荐前者。没看过《Subversion 版本控制》,但是看起来挺有深度的。

        【讨论】:

          【解决方案5】:

          我也和您一样,从未真正对 SVN 或 SourceSafe 感到 100% 满意。

          查看MercurialQuickstartCheatsheets
          也是一个很棒的cheat sheet from DongWoo Lee(他的网站似乎已关闭,所以我扫描并上传到我的网站)

          使用 Mercurial,一切似乎都变得更加顺畅和容易,不知道为什么,因为它的命令与其他人没有太大不同。

          【讨论】:

            【解决方案6】:

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

            【讨论】:

              【解决方案7】:

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

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

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

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

              当然,我也在学习:)

              【讨论】:

                【解决方案8】:

                我不确定您在版本控制系统方面有多少经验,但对于对这个概念没有先验知识的人,我建议您阅读Subversion book 的前几章。那里描述的一些东西是特定于 Subversion 的,但许多概念对于版本控制系统以及如何使用它们是“通用的”。

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

                在过去与许多开发人员一起经历过这种现象,我最近在我的博客上写了一个我认为best practices for version control 的总结。

                【讨论】:

                  【解决方案9】:

                  【讨论】:

                    【解决方案10】:

                    查看GIT。一个关于它的谈话here

                    【讨论】:

                      【解决方案11】:

                      恕我直言,配置管理的最佳网络资源是 Brad Appleton 的 The ACME Project

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

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

                      Subversion 的书,大概就是上面提到的官方Subversion book。它可以在线免费获得,也可以购买硬拷贝。

                      【讨论】:

                        【解决方案12】:

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

                        【讨论】:

                          【解决方案13】:

                          Version control by example by Eric Sink 很好,很容易关注

                          【讨论】:

                            猜你喜欢
                            • 2010-12-04
                            • 1970-01-01
                            • 1970-01-01
                            • 2010-11-20
                            • 2010-11-25
                            • 2010-10-10
                            • 1970-01-01
                            • 1970-01-01
                            • 2012-07-15
                            相关资源
                            最近更新 更多