我是学生,我对源代码控制的使用主要是学术性的(硬件分配,2-4人项目等)。
到目前为止,我一直在使用谷歌代码托管的Subversion,并使用eclipse插件来管理我的存储库。
最近我听说过git,根据我的理解,每次需要在每两个合作伙伴之间同步,以及Mercurial。
基本上我的问题有3个部分:
推荐使用哪种源控制系统以及git提供哪些优势?值得学习吗?
哪个是支持这个系统的好主机?
管理我的存储库的最佳工具是什么?是否比Eclipse插件更好地使用命令行?或者是否有其他推荐的软件?
如果我的问题含糊不清请发表评论,我很乐意对其进行修改。
答案 0 :(得分:6)
Git和Mercurial是 distrubuted SCM,这意味着没有中央服务器(实际上人们同意一个,但基础设施不需要它)。
这是SCM的方式,所以是的,值得学习。
对于git托管,请查看github,对于Mercurial,请查看Kiln(非免费),但也有many free个。
至于询问命令行是否优于插件/ GUI?这取决于你喜欢的工作方式。
答案 1 :(得分:3)
我更喜欢与我的IDE集成的工具,所以我推荐这条路线,但是很多人都对使用git的命令行赞不绝口。我认为他们只是比我想要的更难。
git和mercurial彼此足够相似,如果您不熟悉DVCS,那么您选择哪一个就会产生很小的差异。选择具有与您的设置配合良好的工具的那个。
答案 2 :(得分:1)
使用您最熟悉的那个,
与SVN相比, - svn是CVS的后代,并保留其大部分结构和故障。 - 有1点故障(中央存储库)有点不好。分布式SCM也可以在中央存储库模型上工作。 - Distibuted SCM将存储库副本保存在本地。您可以推送到远程服务器,允许您在不打扰“中央”存储库的情况下进行本地版本控制,然后允许您根据需要进行分支。 - 在中央存储库模型上,人们有点不愿分支和分支然后合并(合并颠覆可能是一个消耗任务)。 - 对于subersion来说,问题是你无法为每个目录提供访问权限,它是在存储库级别完成的。 - Subersion不跟踪合并。
我在工作中使用颠覆,人们通常不知道如何管理它,如果你不需要中央存储库,分布式SCM可以减少管理员的需求。