我需要实现版本控制,即使是在家中进行开发也是如此。我已经阅读了有关Subversion在过去几年中的出色表现,并打算全力以赴地学习这一知识,直到我听说Git是即将推出的版本控制系统。
在这种情况下,我应该推迟一下,看看哪一个排名第一吗?它们的相对优势是什么?
我注意到Git的一个问题是功能齐全的GUI并不多,这对我团队中的许多用户而言都很重要。
同样,不介意关于如何开始使用另一种的建议。(教程等)
我需要实现版本控制,即使是在家中进行开发也是如此。我已经阅读了有关Subversion在过去几年中的出色表现,并打算全力以赴地学习这一知识,直到我听说Git是即将推出的版本控制系统。
在这种情况下,我应该推迟一下,看看哪一个排名第一吗?它们的相对优势是什么?
我注意到Git的一个问题是功能齐全的GUI并不多,这对我团队中的许多用户而言都很重要。
同样,不介意关于如何开始使用另一种的建议。(教程等)
Answers:
关于版本控制,最重要的是:
刚开始使用它
不使用版本控制是一个可怕的想法。如果您不使用版本控制,请立即停止阅读并开始使用它。
转换非常容易
cvs<->svn<->git<->hg
选择哪一个都没关系。只需选择最简单的一种即可使用,然后开始记录代码的历史记录。以后您始终可以迁移到另一个(D)VCS。
如果您正在寻找易于使用的GUI,请查看TortoiseSVN(Windows)和Versions(Mac)(建议无编码方式建议)
编辑:
Git具有一些不错的功能,但是除非您已经使用了CVS或Subversion等更标准的功能,否则您将无法欣赏它们。
这个。如果您不知道什么版本控制可以为您做事,那么使用git是没有意义的。
编辑2:
刚刚在reddit上看到了此链接:Subversion Cheat Sheet。svn命令行的快速参考。
使用subversion,它易于设置,易于使用,并且具有许多工具。将来的任何修订系统都将具有从SVN导入的功能,因此,如果您的需求不断增长,就好像您不能随心所欲。
如果您不熟悉VersionControl,请阅读以下内容:
Source Control HOWTO
选择SVN。如果您以前从未使用过源代码管理,那么对您来说无论哪种方式都无关紧要。
而且,使用源代码控制系统不会涉及大量的学习。如果您学习了一个,则以后可以轻松切换到另一个。
SVN是一个很棒的工具,它应该满足您的大多数需求。而且自从问世以来,它就拥有GUI工具(例如TortoiseSVN)的公平共享者。
选择SVN。
有关大多数基本概念的友好说明,请参见《版本控制的可视指南》。这篇文章对SVN非常友好。
我已经使用了RCS,CVS,SCCS,SourceSafe,Vault,perforce,subversion和git。
我已经评估了BitKeeper,Dimensions,arch,bazaar,svk,ClearCase,PVCS和Synergy。
如果今天必须启动一个新的存储库,则选择git。把手放下。
它是免费,快速且正在积极开发中的。
您可以使用git-svn将它用作任何Subversion仓库的客户端。
它晃动。
@ superjoe30
如果您是唯一的程序员,那么如何在自己的计算机上使用源代码管理呢?这是好习惯吗?有相关的提示或技巧吗?
我发现git实际上更容易做到这一点,因为您不需要服务器,也不必担心输入URL等。您的版本控制内容仅位于.git
项目内部的目录中,您可以继续使用它。
5秒的简介(假设您已安装)
cd myproject
git init
git add * # add all the files
git commit
下次您进行一些更改
git add newfile1 newfile2 # if you've made any new files since last time
git commit -a
只要您这样做,git就可以为您服务。如果您搞砸了,那么您的代码在不错的git存储库中是安全的。这很棒
git add .
(添加当前目录),而不是git add *
(使用shell扩展),它的速度更快。
根据我自己的经验,我不会推荐git作为版本控制的简介。我已经使用了几个月,我的印象是它非常强大,而且-我现在已经部分了解了它-相当直观。但是,即使我多年来一直使用版本控制,学习曲线也非常陡峭。它也表现得太强了-它支持许多不同的工作流程和开发模型,但是有关“最佳”使用方式的唯一指南是在Google搜索中深入了几页,这对于新手来说也很棘手。向上。
就是说,从git的空白开始实际上可能会更容易-我的VCS经验全部是集中式版本控制(CVS,SVN,Perforce ...),而我(正在进行中!)遇到的部分困难是git了解分布式模型的含义。我简要浏览了其他DVCS,例如Bazaar和Mercurial,它们似乎对新手更友好。
无论如何,就像其他人所说的那样,Subversion可能是适应版本控制思想和获得VCS好处(回滚,分支,协作开发,更容易的代码审查等)的实践经验的最简单方法。
哦,别以CVS开始。它仍然在实际使用中并具有优势,但是恕我直言,它有太多的历史古怪和实现问题(非原子提交!),不是学习的好方法。
我的投票投向了Subversion。它功能强大,但易于使用,并且具有一些出色的工具,例如TortoiseSVN。
但是正如其他人在我之前说过的那样,请开始使用它。源代码控制是软件开发过程中如此重要的部分。没有“严肃”的软件项目,就应该没有它。
如果要避免任何命令行工作,也请尝试使用服务器的Visual svn。
Git优于Subversion,但在前沿方面有点不足。
我想说的是,如果您才刚刚起步,那就快点走吧;设置一个免费帐户@ http://github.com
他们在现场有用于设置和使用git的教育资料。
是的,SVN是首选,除非您确实需要git的特定功能。SVN足够难。听起来git更难以使用。您可以从Beanstalk之类的人那里获得托管的svn-除非您有内部Linux的人,否则我真的会推荐它。事情很容易出错,很高兴有其他人来解决这个问题。
无论您使用哪种系统,Eric Sink都会提供出色的修订控制教程,值得一读。
使用TortoiseSVN(如果是Mac,则为version.app)。只需安装即可。如果需要托管代码的地方,请访问http://beanstalkapp.com/
SubVersion是您的最佳选择,正如Karl Seguin指出的,迁移到另一个版本控制系统将不是问题。SVN在客户端(TortoiseSVN)中也非常容易使用GUI。
http://www.snee.com/bobdc.blog/2007/08/getting_started_with_subversio.html http://dojo.jot.com/WikiHome/Getting%20Started%20With%20Subversion
如果您选择使用Subversion,并且希望托管自己的svn服务器,则有一个非常漂亮,简单的基于Windows的服务器,称为VisualSVN服务器。它掩盖了设置apache服务器的复杂性,您基本上只需要下一步。用户配置是通过webUI而非配置来处理的
http://www.visualsvn.com/server/
使用类似R的bean的公共服务可能更容易,但是有些人喜欢拥有自己的存储库,以提高速度或确保安全
Coding Horror撰写了一篇很棒的文章,介绍如何在Windows上设置Subversion。
遵循该教程,我能够在本地运行Subervsion和TortoiseSVN,并且得到了所需的培训。
就Git而言,最好动手对它们进行实验,以了解它们适合您的特定开发实践。
相关问题(也许答案也可以编辑以回答此问题):
如果您是唯一的程序员,那么如何在自己的计算机上使用源代码管理呢?这是好习惯吗?有相关的提示或技巧吗?
我将SVN用于所有个人项目。我从在家用计算机上运行svn开始,但最终迁移到Dreamhost。他们的包含Subversion的托管软件包非常合理。
@ superjoe30是的,绝对。一旦开始使用版本控制,就再也不会回头了。我用它来做所有事情,甚至是我的“ home”文件夹。
@Orion Edwards Subversion不需要服务器。您可以直接访问本地存储库(当然,通过客户端),并且不涉及服务器进程。
正如在其他地方多次提到的,请随便做。通过阅读《红皮书》中的快速入门指南,我可以立即在Windows下使用Subversion从零开始。将TortoiseSVN指向存储库后,我便开始从事商务活动。我花了一些时间才能记下更好的分数,但这些都是克服困难的小障碍。
我建议安装Subversion服务,而不要使用file:// URL,但这主要是个人喜好。对于存储在开发计算机上的存储库,file://可以正常工作。