什么是作为源代码控制的初学者学习的最佳版本控制系统?

===============>>#1 票数:24 已采纳

除了Visual Source Safe之外的任何东西; 优选地,支持分支和合并的概念。 正如其他人所说,Subversion是一个很好的选择,尤其是TortoiseSVN客户端。

请务必查看(原谅双关语) Eric Sink的经典系列Source Control HOWTO文章

===============>>#2 票数:8

我建议您尝试Subversion,例如使用一键式SVN安装程序 尝试在SO上搜索“Subversion”,你会发现很多问题和答案,指向好的教程。

祝好运!

===============>>#3 票数:8

我会直接去找Git 我之前使用过颠覆,但总觉得我做错了。 从第一天开始,Git就有了意义。

有用的资源:

===============>>#4 票数:5

我认为有一些重要的核心概念需要学习:

  1. 签到/退房(显然)
  2. 本地版本与服务器版本
  3. 将本地工作空间映射/绑定到远程存储库或存储库。
  4. 将您的更改合并回包含其他更改的文件。
  5. 分支(它是什么,何时/为何使用它)
  6. 将更改从分支合并回主分支或主干。

大多数现代源控制系统需要一些上述主题的知识,并应有助于您学习它们。 然后你有分布式源代码控制,我没有任何经验,但应该相当复杂,可能不适合初学者。

Subversion很棒,因为它具有您想要的所有现代功能并且是免费的。

Git也正在成为越来越受欢迎的选择,并且是Subversion的另一种免费或非常低成本的替代品。 然而,关于分支和合并概念的知识对于使用Git至关重要。

您可以使用unfuddle作为一种免费且简单的方法来试验Git和Subversion。 我用它来承载我过去曾经做过的一些项目的几个subversion存储库。

===============>>#5 票数:3

我不是高级源代码控制用户,但我正在学习。 以下是我对源代码控制产品的经验:

  1. 很久以前,我当时工作的公司决定使用源代码控制。 他们向开发人员介绍了这个概念,并让eveyone愿意尝试一下。 他们选择使用PVCS并实施它。 不久之后,开发人员必须协调锁定/解锁模块和对象,我们真的没有看到太多的好处。

  2. 几年后,我正在玩一个开源项目,当时rubyforge正在提供CVS存储库。 我试了一下,它比PVCS好一点。 当然,我是唯一一个使用存储库的人。 然而,当我尝试重新排列文件的结构时,我确实感到沮丧,因为我不喜欢我最初导入它们的方式。 它在CVS中并没有真正奏效。

  3. 几年后,我正在开展另一个个人项目,我的网络托管服务提供商提供了易于设置的Subversion(SVN)存储库。 我花了一些时间研究它才能正常运行,但是一旦我超越了最初的学习曲线,我就喜欢它了。

  4. 不久之后,我意识到我喜欢有源代码控制,而且我目前的工作没有。 所以我传福音,经过很长一段时间,我的团队实施了Source Safe,因为我们在Visual Studio工作,而且通常是微软的商店。 我很想使用它,但不久之后我发现我丢失了文件而且Visual Studio把东西放在了错误的地方并且我在一个项目上工作了一段时间然后将我的工作导出到另一个地方并发现它要么不会导出,要么只会导出解决方案中的某些项目。 这让我意识到即使我以为我使用的是“版本控制系统”,但最安全,最健壮和完整的代码副本是我的工作副本。 与源控制应该做的完全相反。

  5. 所以上周我厌倦了Source Safe,我去搜索了。 在研究了几个解决方案之后,我决定尝试一下git。 我不会说这一切都是玫瑰花,因为我已经有了一些学习曲线来让它做我想做的事情。但是,我已经非常喜欢将我的所有工作和个人项目转换成它。 关于它的一个非常好的事情是我不需要一个集中的存储库,所以我可以使用它而无需在工作中通过大量的繁文缛节来安装它。

所以总之我会推荐git,我在windows中使用Mysysgit,它还有额外的好处,就是给我一个bash shell。 在Linux上,您可以从包管理器中安装它。 如果您不喜欢git,请尝试使用subversion。 如果您不喜欢其中任何一个,您可能也不喜欢CVS或PVCS。 在任何情况下都不要尝试Source Safe,这太糟糕了。

===============>>#6 票数:2

我发现http://unfuddle.com让我搞砸了安装SVN或git。 您可以在那里获得一个免费帐户并使用其中任何一个 - 此外,您可以在那里使用您的OpenID。

然后,你可以避免不得不把它设置得正确,并专注于你将如何使用它!

===============>>#7 票数:2

来自SourceGear.com的保险柜非常棒。 它对单个用户是免费的,并提供了一流的VS 2005/2008界面。 我喜欢它!

RP

===============>>#8 票数:1

@Ian Nelson

我同意你的观点,Source Safe作为一个源控制系统很糟糕,但请记住,使用Source Safe比使用Joel Spolsky所说的“携带软盘”要好得多。

对于初学者来说,这可能不是一个坏主意,因为根本没有源控制的成本要高得多。

===============>>#9 票数:1

每个工具都有它的优点和缺点。 这是你的要求是什么的问题。 不幸的是,与许多其他问题一样,这个问题通常不是选择的最佳工具,而是某人熟悉的工具。 例如,如果您不需要很多分支,并且您的团队规模较小且本地化,那么几乎所有vcs都可以完成这项工作(SourceSafe除外)。 如果您需要分支(这几乎必然意味着您还需要进行合并),您的团队分布,您需要高级安全性(分包商不允许整个源代码树),任务跟踪等等,事情会发生变化。还有一个问题成本有三种不同的方式:许可证成本,维护成本(某些工具非常复杂,以至于您实际上只需要控制存储库的人员)和培训成本。

因此,建议一个工具而不是另一个工具就像建议什么是最好的编程语言。

只是一些指示:

  • StarTeam是我使用过的最简单的工具。 它只需要很少的培训。 自从我成为维护者以来,我接受了为期一天的培训。 这种维护每周花费不到30分钟。 用户通过编写两页手册“训练”,之后我只有很少的问题要回答。
  • 就易用性而言,Continuus是规模的另一端。 另一方面,任务处理非常好,它为发布管理提供了很好的支持。 麻烦的是,即使作为一名发布经理,我从未想过轻松发布(一旦你学会了,但这花了相当多的时间)应该比开发人员的日常工作更重要。
  • 合并和分支创建在工具之间存在很大差异。 有些工具使这很简单,比如git和ClearCase(尽管后者非常慢),有些工具基本上迫使你手动完成合并。 如果你需要做很多合并,成本可能会很高。 ClearCase在之前提到的所有三个类别中也很昂贵(尽管必须说我们使用了所有必要的高级内容)。 另一方面,Git缺乏良好的用户界面,有些概念与您可能习惯的有所不同。 Git的安全功能也缺乏(gitosis解决了一些问题,但不是全部)。
  • 我使用的大多数工具也很慢。 像PVCS / Dimensions这样的工具只是很慢,无论如何(基本的东西,比如在存储库中打开一个目录),一些非常慢的更具体的方式(如ClearCase)。

从我使用的工具中我选择StarTeam,如果你的开发人员不是很有经验(如果你不介意支付许可证,这是非常昂贵的)和git,如果你有一些经验丰富的vcs人员,他们可以设置环境对其他人。 Mercurial看起来也是一个有趣的竞争对手,似乎有更好的UI。

Continuus,PVCS / Dimensions和ClearCase对于几乎所有项目而言都太慢,太复杂且太昂贵。 如果有人坚持选择其中一个,我会选择ClearCase。

我没有使用许多人似乎喜欢的Subversion(但是,我感觉这将在不久的将来改变)所以不能评论它与我使用的其他工具(通常作为构建和/)的比较或发布经理)。

至于第一个选择的工具,Git,Bazaar和Mercurial的问题是它们是分布式的vcs。 这与您拥有中央存储库的传统服务器 - 客户端模型不同。 为了学习这些东西,我建议也阅读有关概念的内容。 例如,分支只是通过尝试自己可能无法正确理解(对于不同的情况,存在不同的分支策略)。 如果你是唯一一个访问存储库的人,那么它就是非常不同的,例如合并冲突不会是一个问题(你可能会看到它们但你也很容易修复它们,因为你知道两个分支中的代码)。 当然,你会了解检查,检查等等,但我认为这些问题一开始并不特别困难。

vcs的附加问题是他们倾向于使用不同的术语。 在StarTeam,否则易于使用他们出于某种原因坚持使用术语“签出”和“签出和锁定”。 后者是大多数人认为的第一个。 这是有原因的(即使您没有独占锁也可以编辑文件),但是为了避免混淆,调用这些“获取”和“签出”仍然更有意义。

===============>>#10 票数:0

Subversion是一个很好的开始。 它是非常稳定和现代版本控制系统。 开始学习Subversion的最佳在线资源是使用Subversion进行版本控制 就服务器和客户端软件而言,有很多选择。 我个人更喜欢(适用于Windows环境)。

  1. VisualSVN服务器

  2. TortoiseSVN shell集成客户端和

  3. AnkhSVN Visual Studio Subversion附加组件

再次,使用Subversion有很多选项可用。 此外,它是一个不断发展的版本控制系统(与过时的SourceSafe不同)。 它可以很容易地与众多自动构建工具(CruiseControl,FinalBuilder)和错误/问题跟踪系统(JIRA)集成。

如果您正在寻找最先进的版本控制系统,请选择Git(由Linus Torvalds开发)。 但如果您对版本控制系统完全陌生,我建议从颠覆开始。

===============>>#11 票数:0

什么,但我会学习像git或subversion这样的现代系统。 我的第一个VCS是RCS,但我得到了基础知识。

===============>>#12 票数:0

好吧,如果你只想自己学习,我会说你应该选择免费的东西,比如颠覆。 如果您以前从未使用过源控制,那么它实际上取决于您的需求。

===============>>#13 票数:0

我的第一次曝光是以WinCVS作为客户的CVS。 这太可怕了。 接下来是Subversion,TortoiseSVN和Eclipse的集成。 这是直觉的,天堂般的。 我认为使用带有TortoiseCVS和Eclipse的CVS也会很好,尽管我更喜欢SVN处理修订的方式。 每个签入都会对整个存储库进行版本控制,而不是单个文件。

===============>>#14 票数:0

我也推荐Subversion。 设置不需要太长时间,它是免费的,并且有一本非常好的在线书籍可以解决基础知识以及一些高级主题: http://svnbook.red-bean.com/

===============>>#15 票数:0

用tortoisesvn颠覆。 (tortoisesvn因为你可以在视觉上看到很多内容,并且会为命令行提供一个很好的跳跃点。)那里有很多文档,很可能你会在职业生涯中至少看到一点。 几乎我所工作和采访的每家公司都运行SVN。

===============>>#16 票数:0

如果您希望在入门时学习商业产品Perforce提供免费的客户端和服务器,服务器支持两个用户和五个客户端工作区。

在我以前的工作场所,它不仅被我们的程序员用于代码,而且用于艺术资产和游戏关卡以及我自己的文档。

  ask by FortunateDuke translate from so

未解决问题?本站智能推荐:

2回复

使用Tortoisesvn进行版本控制:初学者指南

最近几个月以来我一直在从事一个项目。 现在,我在同一项目中为不同模块工作的人很少。 为此,我想拥有一个中央(共享)副本,其他副本可以通过LAN连接(我们没有任何服务器)进行访问。 我经历了各种链接,但无法完全理解其中的任何一个。 我下载了tortoisesvn并安装在我的PC上。
1回复

适用于初学者的Git

嗨,我有一个FreeBSD服务器和一些Windows机器。 我希望FreeBSD一直是中央git服务器。 在服务器上,我从具有SSH支持的端口安装git(我读到git具有它自己的协议,我想使用它)。 我修改/etc/rc.conf: 执行下一步: 启动git守护进程
5回复

学习SVN - 简单的初学者问题

刚开始使用SVN。 这是我在阅读了几篇文章,教程和玩了几个小时之后的一组非常基本的问题。 当我创建一个回购时,它应该包含我的所有项目还是只有一个? 在一些项目上运行导入后,我添加的每个新项目的修订计数都会增加,这似乎很奇怪。 如果我自己工作,标签和分支仍然是必要的和良好的做
37回复

Git初学者:权威的实用指南

好的,在看到PJ Hyett的这篇文章之后,我决定跳到最后,选择Git 。 因此,我需要的是Git的初学者实用指南。 “初学者”被定义为知道如何处理其编译器,在某种程度上理解Makefile是什么,并且在不十分了解它的情况下接触了源代码控制的人。 “实用”被定义为该人员不想深入了解
2回复

SVN远程到本地设置,适合初学者

我是使用Subversion的新手,并且刚刚设置了以下内容-远程服务器上的SVN和本地PC上的SVN。 我在/ repos的远程服务器上创建了一个存储库,然后我(svn)将实时网站的文件导入了该存储库。 然后,我(使用svn + ssh)将工作副本检出到我的本地PC,直接复制到/ var /
22回复

初学者Mercurial:权威的实用指南

受到Git初学者的启发: 权威的实用指南 。 这是有关使用Mercurial面向初学者进行实际使用的信息的汇总。 初学者-接触过源代码控制却不太了解的程序员。 实用-涵盖大多数用户经常遇到的情况-创建存储库,分支,合并,从/到远程存储库的拉/推等 注意事项 :
10回复

初学者指导学习如何在Visual Studio中使用Subversion

对我来说,学习如何使用Subversion作为我的Asp.Net Web项目的源代码控制的最佳方法是什么? 我以前没有多少联系源控制; 但是我对它的功能有一个非常基本的了解,所以我正在寻找一种学习最佳实践的方法。 任何提示将非常感激。
11回复

自由源控制

到目前为止,即使我做了很多小型家庭项目,我也从未对自己的项目使用任何源代码控制。 我现在几乎正在部署我的第一个个人公共网站,并认为这是设置一些东西的好时机。 我正在寻找的主要内容之一是版本控制(标签等)。 与Visual Studio(2010)集成很好但不是必需的。 我意识到,免费
5回复

本地源控制

任何人都可以推荐一个简单易用的源控制系统,我可以在我的笔记本电脑上本地使用,以便与VS2010集成的单个用户? 我只是在寻找能让我在本地进行版本控制的东西,而不是特别用于协作工作。 我在开发团队的一部分时使用过SubVersion并且与VS2010非常配合,但是对于我自己的个人项目/工作
16回复

轻量级源控制

我正在寻找一个轻量级的源控制系统,用于“业余爱好”项目,只有一个人(我自己)在项目上工作。 有没有人有什么建议? 理想情况下,它应该天真地或通过另一个插件与Visual Studio连接,除此之外,任何有效的东西都可以替代Gmail作为源代码控制。