所有不同类型的版本控制有什么区别?

Tei*_*ion 22 version-control

在被至少10个人告知之后,版本控制是一件好事,即使只是我,我现在有一个后续问题.

所有不同类型的版本控制之间有什么区别,是否有任何人都知道版本控制的指南非常简单易懂?

Mar*_*son 20

我们似乎处于版本控制的黄金时代,有大量的选择,所有这些都有其优点和缺点.

以下是我最常用的内容:

  • svn - 目前最流行的开源?
  • git - 自从Linus改用它以来非常热门
  • mercurial - 我知道一些聪明的人发誓
  • cvs - 每个人都在转换的人
  • perforce - imho,最好的功能,但它不是开源的.但是,双用户许可证是免费的.
  • 视觉源安全 - 我在微软的世界里并不多,所以我不知道这个,除了人们喜欢嘲笑它,因为他们对微软的所有东西都不屑一顾.
  • sccs - 为了历史的兴趣,我们提到了这个,上面的许多人的曾祖父
  • rcs - 以及上述许多人的祖父

我的建议:你使用git,svn或perforce是最安全的,因为很多人使用它们,它们是跨平台的,有良好的guis,你可以购买关于它们的书籍等等.

不要考虑cvs,sccs,rcs,它们是古董.

好处是,由于您的项目相对较小,一旦您更有经验并决定要使用其他系统,您就可以将代码移动到新系统.

  • 不幸的是,在一个人的职业生涯中,遇到ClearCase和CA SCM几乎是不可避免的.然而,正常的人类永远不会为自己的项目选择这些. (2认同)

Jon*_*rks 6

对于刚开始使用版本控制的每个人:

请不要因为炒作而使用git(或hg或bzr)

使用git(或hg或bzr),因为它们是比SVN 更好的管理源代码的工具.

我在工作中使用SVN几年,并在6个月前切换到git.在没有学习SVN的情况下,我会在使用DVCS时完全丢失.

对于刚开始使用版本控制的人:

  • 首先下载SVN
  • 了解为什么需要版本控制
  • 学习如何提交,结账,分支
  • 了解为什么在SVN中合并是如此痛苦

然后切换到DVCS并学习:

  • 如何克隆/分支/提交
  • 合并你的分支是多么容易(疯狂分支!)
  • 重写提交历史记录并让你的分支
    与主线保持同步是多么容易(git rebase -i,)
  • 如何发布您的更改,以便其他人可以受益

tldr; 人群:

从SVN开始学习基础知识,然后毕业于DVCS.


num*_*um1 5

版本控制对于开发至关重要,即使您自己工作也是如此,因为它可以保护您自己.如果你犯了一个错误,回滚到你知道有效的代码的早期版本是一件简单的事情.这也让您可以自由地探索和试验您的代码,因为您无需担心您所做的事情是否可逆.版本控制系统(VCS)有两个主要分支,即集中式和分布式.

集中式VCS基于使用中央服务器,每个人都"检出"项目,对其进行处理,并将其更改"提交"到服务器以供其他人使用.主要的集中式VCS是CVS和SVN.两者都受到了严厉的批评,因为"合并""分支"对他们来说非常痛苦.[TODO:写关于什么分支的解释以及为什么合并对CVS和SVN来说很难]

分布式VCS让每个人都拥有自己的服务器,您可以在其中"拉"来自其他人的更改,并将更改"推送"到服务器.最常见的分布式VCS是Git和Mercurial.[TODO:在Distributed VCS上写下更多内容]

如果您正在处理项目,我强烈建议您使用分布式VCS.我推荐Git,因为它速度极快,但一直被批评为太难用了.如果您不介意使用商业产品,BitKeeper应该很容易使用.


Yaa*_*lis 5

我会从:

然后,一旦你阅读了它,下载并安装SVN,TortoiseSVN并浏览本书的前几章并开始使用.