虽然大家使用的工具各有不同,但是相信每一个程序员都对SVN这种代码管理的工作方式很熟悉了。
今天了解一下流行的Git和Github,是因为在使用很多java开源类库时,发现很多都是使用github,例如Jenkins。
Git (/ɡɪt/) is a distributed revision control system with an emphasis on speed
Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.
简单的说,Git拥有多个分布式repository。每一个都包含完整信息,都可独立工作。而不是像SVN一样,只有一个server,其他人只是使用客户端来访问server而已。
每次更改,都首先提交到本地repository。程序员们可以进行under-line development。
在需要的时候,连入网络,就可简单的和其他地方的一个或多个repository同步。
我在本地安装了一个MSysGit,是windows版的Git工具。安装后发现只有一个命令行界面,命令是unix-style的。
和熟悉的SVN使用的命令都几乎一样:
git status
git add
git commit
...
但是Git作为版本控制工具,虽然使用上和传统的SCM很像,但工作方式还是有很大不同:
Git is all about composing and saving snapshots of your project and then working with and comparing those snapshots
所以大家可以查看下面网址详细学习。
_一个很不错的介绍Git使用方法的网站:
_
关于Git的wiki也很不错,比较详细的描述了Git特殊的内部工作方式。但如果仅仅是想使用git,简单了解一下就行了:
http://en.wikipedia.org/wiki/Git
GitHub
在开发开源项目时,仍然需要一个中心的repository,让项目组的所有成员check in/out代码。
这就是GitHub的用途。正如GitHub这个名字,它和Git工具很好的结合在一起。
到https://github.com/免费注册用户,就可以创建自己的repository。
(很可惜的是仅提供0.3G的免费空间,同时repository是公开的,任何人可以查看。。。想用更大的repository?或者个人的repository?付费吧。。。)
一旦repositroy创建成功,或加入其他的项目组,就可以方便的使用本地的Git工具将local的repository和在GitHub的repository方便的同步。
典型的工作流程是:更改代码->提交到本地repository->同步到Github。全部过程仅需几个命令即可完成,而且速度很快。
同步后,在本地就可以快速的查看所有相关history,提高了不少效率。同时在Github上可以浏览所有repository的内容,以及各个Branch的内容等等,开源嘛~
Github还有一个很好的功能:be social
注册成功后,就可以follow你感兴趣的人。这不仅仅是为了娱乐和学习,更重要的是,你可以follow你的合作伙伴,从而及时知道他们做了什么更改,是否会影响你的更改,是否需要merge更改。在合作开发开源项目的时候,这个功能实在太有用了。
关于Github的使用方法,官网上注册时有step by step的指导,非常非常简单。。。而且logo是小猫猫,很可爱的啊~
总之Git和GitHub就是工具而已,用着试试看就明白是怎么回事儿了。