一直很想搞下git,为啥?因为最近很火。之前上github,英文看不懂,好吧,是懒得查翻译。然后不了了之了。现在开源中国有中文的教程,果断研究下(其实是无聊没事干)。
好,先来看下git的历史吧。
这里有很详细的介绍。就不关公门前耍大刀了。不过还是按照我的理解总结下吧(好吧,没有理解,全是copy的)。
版本控制的三阶段:
一、本地版本控制系统
- 例子:rcs;
- 原理:保存并管理文件补丁;
-
- 缺点:本地;
二、集中化的版本控制系统(CVCS)
- 例子: CVS,Subversion 以及 Perforce 等;
- 原理:有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新;
-
- 缺点:如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。要是中央服务器的磁盘发生故障,碰巧没做备份,或者备份不够及时,就会有丢失数据的风险(记得之前做项目,svn挂掉,真是开心,在那玩了一下午);
三、分布式版本控制系统(DVCS)
- 例子:Git,Mercurial,Bazaar 以及 Darcs 等;
- 原理:客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复;
-
- 缺点:这个没有说(怎么能自砸门面呢)
git基础:
1、直接记录快照,而非差异比较( Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接 )2、近乎所有操作都是本地执行( 绝大多数操作都只需要访问本地文件和资源,不用连网。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。好像很diao有木有 )
3、时刻保持数据完整性(在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引 )
4、多数操作仅添加数据(安全)
5、文件的三种状态(已提交(committed),已修改(modified)和已暂存(staged),已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中 )
git的安装和配置:
下载:window的下载地址: http://msysgit.github.com/
好吧,下载完就安装,还是一堆英文,闭着眼睛点点点,就安装完了。
然后桌面就有这货了:
打开一看,坑爹啊:
怎么设账号啊,怎么设文件夹啊!
看看命令:
设置账号:
查看配置信息:
因为window 下没linux那么随意性,其他就不怎么配了。
好了,洗洗睡吧。困了。