Mac上的版本控制

时间:2011-01-18 15:22:59

标签: svn git version-control git-svn

我是学生,我对源代码控制的使用主要是学术性的(硬件分配,2-4人项目等)。
到目前为止,我一直在使用谷歌代码托管的Subversion,并使用eclipse插件来管理我的存储库。

最近我听说过git,根据我的理解,每次需要在每两个合作伙伴之间同步,以及Mercurial。 基本上我的问题有3个部分:
推荐使用哪种源控制系统以及git提供哪些优势?值得学习吗? 哪个是支持这个系统的好主机? 管理我的存储库的最佳工具是什么?是否比Eclipse插件更好地使用命令行?或者是否有其他推荐的软件?

如果我的问题含糊不清请发表评论,我很乐意对其进行修改。

3 个答案:

答案 0 :(得分:6)

Git和Mercurial是 distrubuted SCM,这意味着没有中央服务器(实际上人们同意一个,但基础设施不需要它)。

这是SCM的方式,所以是的,值得学习。

对于git托管,请查看github,对于Mercurial,请查看Kiln(非免费),但也有many free个。

至于询问命令行是否优于插件/ GUI?这取决于你喜欢的工作方式。

答案 1 :(得分:3)

  • github是git的一个很好的免费存储库。
  • bitbucket是一个很好的mercurial免费存储库。

我更喜欢与我的IDE集成的工具,所以我推荐这条路线,但是很多人都对使用git的命令行赞不绝口。我认为他们只是比我想要的更难。

git和mercurial彼此足够相似,如果您不熟悉DVCS,那么您选择哪一个就会产生很小的差异。选择具有与您的设置配合良好的工具的那个。

答案 2 :(得分:1)

使用您最熟悉的那个,

  • Git是一个经过验证的分布式版本控制系统,分支和合并很便宜,跟踪变化和合并,唯一的问题是git正在跟踪一个完整的项目,并且难以处理项目目录。
  • 据我所知,Mercurial在Google广泛使用。

与SVN相比, - svn是CVS的后代,并保留其大部分结构和故障。 - 有1点故障(中央存储库)有点不好。分布式SCM也可以在中央存储库模型上工作。 - Distibuted SCM将存储库副本保存在本地。您可以推送到远程服务器,允许您在不打扰“中央”存储库的情况下进行本地版本控制,然后允许您根据需要进行分支。 - 在中央存储库模型上,人们有点不愿分支和分支然后合并(合并颠覆可能是一个消耗任务)。 - 对于subersion来说,问题是你无法为每个目录提供访问权限,它是在存储库级别完成的。 - Subersion不跟踪合并。

我在工作中使用颠覆,人们通常不知道如何管理它,如果你不需要中央存储库,分布式SCM可以减少管理员的需求。