DVCS, Git乱谈

最近在比较认真的学习Git,记录一下学习过程中的一些想法,无关Git命令行,是关于DVCS当前形式以及未来走向的展望 🙂

从两年多前开始关注DVCS(分布式版本控制系统),当时颇是读了一些《Git的10个优点》、《为什么Git比X更好》之类的文章,现在看来不需要论证DVCS的必要性了,这个是趋势(流行)。

当年Sourceforge如日中天。版本控制从CVS换成SVN,加上好用的TortoiseSVN让事情变得简单,真是让人激动了一阵子。谁会想到如今项目要是Host在Sourceforge而非Github恐怕是不好意思跟人打招呼。

关注DVCS是因为SVN这类需要中心服务器的版本控制系统,当你不能连接到服务器时,大量的改动无法Track让人纠结,最后导致一大坨的Commit也不是什么优雅的事,这是最初的itch。

观察下来,目前周围的公司使用DVCS的几乎没有,毕竟在移动中编码,无法连接到中心服务器的情况鲜有发生,满世界跑来跑去在田野中、地铁上、飞机商务舱里写代码这种待遇不是一般码农可以享受的。况且这也是个高新技术,SVN对一些人来说就已经很难了不是吗。

嗯,其实我想说的是,工具满足需要就好。

我个人的需求是个人代码仓库,没有太多和他人合作的需要,所以DVCS的一些协作模式对我作用并不大,最初是用VisualSVN创建SVN服务器解决的,但是外出时不能连接服务器的最初的itch不能解决。

类似GitHub这样比较有保障的服务可以解决需要,也免去Self Hosting的人力成本,其次才是享受DVCS一些附加功能的便利。当然,在中国,服务被墙掉是潜在的风险,虽然大部分时间我都不能理解这样一种服务是干了怎样伤天害理的事情。

DVCS有两个主要的选择Git和Mercurial(简称HG),你同样能够找到关于两者优劣的大量文章,当然两者其实很相像,随便用用那些优劣和你没关系。当然因为GitHub流行的关系,Git更流行。

至于提供Hosting服务的,我主要关心GitHub和BitBucket。

GitHub当然支持Git,免费用户只支持Public Repository。作为不入流程序员,不是谁都有勇气把自己写的那些零碎一股脑公开在网络上的,所以要不要用GitHub我犹豫良久。

当然GitHub的gist是个好东西,用作代码交流或是在博客中嵌入代码都很方便。

BitBucket的后台老板是Atlassian,Atlassian还有个产品是JIRA,因为用过JIRA感觉不错的关系,所以附带加分,有后台至少说明这个服务还是有保障的。BitBucket支持Private Repository,是个用来放零碎东西的好地方。不过原来BitBucket只支持Mercurial,最近才开始支持Git。看到这里你知道我为什么开始学Git了吧。

学习首先一定要了解DVCS的概念,直接从命令行开始到一定程度一定会很困惑。Git官网上有不错的教程。

以下是另外一些教程:

Joel Spolsky推荐教程,我最初看的就是这个,如果你学Mercurial当然就看这个,另外也能学到一些DVCS概念

一开头就写了,no deep shit。根据常用场景给出命令,需要先了解概念然后这个用作初学时的参考。

寓教于乐的互动式学习。

Leave a Reply