这两天刚完成了一个小项目,整理资料发现现在写代码跟文档又没有版本控制的意识,刚好前两天电脑出问题,差点所有代码跟文档全丢掉,所以这两天又在自己的台式机上架起了git,做所谓的代码服务器,之前折腾过一次,因为时间原因没有总结下来,结果这次弄的时候,又得满世界找资料,所以这次准备总结一下,也做了一个参考资料汇总,以备以后再折腾时用。
git简介
git是干嘛的呢?记得听哪位大牛说:没有版本控制意识的程序员,都不是好程序员!如果你认同这句话,那么Git就是用来帮助你成为好程序的。Git应该是当下最受人推崇的版本管理系统了(仅仅是感觉,没有依据),之所以受推崇,除了因为它是Linux内核开发者
Linus Torvalds最初开发的,其确实有很多其他版本控制系统所没有的特点,否则其也很难管理像Linux内核项目这样的超大项目。那么它有什么特点了?
首先,与以前广为流行的SVN不同,git是分布式的,其没有服务器端与客户端之分(虽然在项目管理过程中,一般会人为地指定某一台非开发用的机器作为“服务器”,但就git自身功能来说,完全可以没有这个台“服务器”,至于实际中为什么会有,后面将会讲到)。
然后,git的分支(branch)与合并(merge)功能非常强大与智能。据维基百科所说:
git最为出色的就是它的合并跟踪(merge tracing)能力。作为SVN与git的用户,亲身体验告诉我,git提供的分支间代码合并功能的确非常强大,很少出现需要手动合并代码的情况,即使出现,其提供的冲突提示与解决方案也非常方便跟简单。
最后,它是开源的,它正在变得越来越强大跟方便,同时,好用配套工具也越来越多,使得git的使用与管理更简单方便。
当然,它一样是有缺点的,比如其学习曲线相对比较抖,但是只要你想学,网上系统的资料越来越多了。本人现在也基本算入门,本文也仅仅是一个备忘录,权当一个可能不大好的入门材料。本文的最后列出了一些可以更系统学习的资料。同时,git自身没有权限控制,需要额外的权限控制工具,但是现在也有不错的工具可以弥补了,本文也有举例介绍我自己当前在用的。
好,闲话说得够多了,下面开始介绍git的安装,包括git本身的安装,以及“服务器”上一些配套的管理工具的安装,包括用于权限管理的gitolite,用户web浏览文件的gitweb。
git安装
git安装
git自身的安装其实是很简单的,不论是windows下还是Linux下(以我自己用的ubuntu为例),尤其是如果你仅作为“客户端”(即别人不会直接从你的电脑上clone代码,不会向你的电脑提交或者获取代码),你只需要跟安装一个普通软件一样傻瓜式安装即可:
windows下直接下载可执行安装程序
msysgit (选择git for windows 或者 msysgit都可以),然后双击运行,根据提示安装即可,非常简单!
Linux的安装也很简单,尤其如果你用的Ubuntu或者Debian等有本地包管理系统的linux系统,一条命令即可解决问题(Ubuntu为例):
sudo apt-get install git-core
非常简单吧!(当然,除了跨平台可能是git的优势跟特点外,安装简便肯定不是它的特点,因为很多其他软件也一样……)
但是,如果你是在为你的小组或者自己配置专门的代码服务器,供所有成员备份代码、共享代码、交流代码、合作开发,你可能就需要一些额外的工作了