前言
大家对Git了解有多少?知道Git是做什么的吗?版本控制是管理数据变更的艺术,无论数据变更更是来自同一个人,还是来自不同的人(一个团队)。版本控制不但要忠实地记录数据的每一次变更,还要能够帮助还原任何一次历史变更,以及实现团队的协同工作等。而Git 就是版本控制系统中的佼佼者。
版本控制能决定项目的成败,甚至是公司的生死,此言不虚。在推广开源项目管理工具和为企业提供咨询服务的过程中看到,有很多团队因为版本控制系统管理的混乱导致项目延期、修正的Bug重现、客户的问题不能在代码中定位……无论他们使用的是什么版本控制系统(开源的或是商业的)都是如此。这是因为传统的集中式版本控制系统不能有效地管理分支和进行分支间合并。集中管理的版本库只有唯一的分支命名空间,需要专人管理,从而造成分支创建的不自由;分支间的合并要么因为缺乏追踪导致重复合并、引发严重冲突,要么因为版本控制系统本身蹩脚的设计导致分支合并时效率低下和陷阱重重。Git凭借其灵活的设计让项目摆脱分支管理的梦魇。
最早认识分布式版本控制,源自于我们看到了众多开源项目的版本控制系统大迁移,这场迁移还在进行中。
MoinMoin 是我们关注的一个开源的维基软件,2006 年,它的代码库从SVN迁移到了Hg。
Mailman 同样是我们关注的一个开源邮件列表软件。2007 年,它的代码库从SVN迁移到了 Bazaar。
Linux 采用Git作为版本控制系统(一点都不奇怪,因为Git就是 Linus Torvalds 开发的)。
Android 是目前最为流行的开源项目之一,因为潜在市场巨大,已经吸引了越来越多的开发者进入这个市场,而Android就是用Git维护的。
本书共分为9篇,前8篇是正文,一共41章,第9篇是附录。
第1篇讲解了Git的相关概念,以及安装和配置的方法,共3章。
第1章介绍了版本控制的历史。
第2章用十几个小例子介绍了Git的一些闪亮特性,期待这些特性能够让你爱上Git。
第3章则介绍了Git在三种主要操作系统平台上的安装和使用。
第2篇和第3篇详细讲解了Git的使用方法,是本书的基础和核心,大约占据了全书40%的篇幅。这两篇的内容架构方式是我在进行SVN培训时就已经形成的习惯,即以“独奏”指代一个人的版本控制所要讲述的知识点,以“和声”指代团队版本控制涉及的话题。
在第2篇“Git独奏”中,本书将Git的设计原理穿插在各章之中讲解,因为唯有了解真相(Git原理),才有可能自由(掌握Git)。
第4章git 初始化
第5章git暂存区
第6章git对象
第7章git重置
第8章git检出
第9章恢复进度
第10章git 基本操作
第11章历史穿梭
第12章改变历史
第13章git克隆
第14章git库管理
在第3篇“Git和声”中,本书讲解了团队版本控制必须掌握的里程碑和分支等概念,以及如何解决合并中遇到的冲突。
注意:转发+关注,看评论区即可~
第15章git协议与工作协同
第16章冲突解决
第17章git 里程碑
第18章git分支
第19章远程版本库
第20章补丁文件交互
第4篇细致地讲解了Git在实际工作中的使用模式。除了传统的集中式和分布式使用模式之外,第22章还介绍了 Topgit 在定制开发中的应用,这也是我公司在使用Git时采用的最主要的模式。
第23~25章介绍了多版本库协同的不同方法,其中第25章介绍的一个独辟蹊径的解决方案是由 Android 项目引入的名为repo的工具实现的,我对其进行改造后可以让这个工具脱离Gerrit代码审核服务器,直接操作Git服务器。第26章介绍了git-svn这一工具,该工具不但可以实现从SVN版本库到Git版本库的迁移,还可以实现以Git作为客户端向SVN提交。
第21章经典git协同模型
第22章topgit 协同模型
第23漳子模组协同模型
第24章子树合并
第25章android 式多版本库协同
第26章git 和svn协同模型
第5篇介绍了Git服务器的架设。本篇是全书最早开始撰写的部分,这是因为我给客户做的Git培训讲义的相关内容不够详细,于是应客户要求针对Gitolite等服务器的架设撰写了详细的管理员手册,即本书的第30章。第32章介绍了Android项目在Git管理上的又一大创造,即Gerrit,它实现了一个独特的集中式Git版本库管理模型。
第27章使用http协议
第28章使用git协议
第29章使用ssh协议
第30章gitolite 服务架设
第31章gitosis 服务架设
第32章gerrit 代码审核服务器
第33章git 版本库托管
第6篇讲解了Git版本库的迁移。其中第34章详细介绍了从CVS版本库到Git版本库的迁移,其迁移过程也可以作为从CVS到SVN迁移的借鉴。本篇还介绍了从SVN和Hg版本库到Git的迁移。对于其他类型的版本库,介绍了一个通用的需要编程来实现的方法。在本篇的最后还介绍了一个Git版本库整理的利器,可以理解为一个Git库转换为另外一个Git库的方法。
第34章cvs版本库到git的迁移
第35章更多版本控制系统的迁移
第7篇是关于Git的其他应用,其主要内容介绍了我在etckeeper启发下开发的一款备份工具 Gistore,该工具可以运行于Linux和Mac OS X下。
第36章etckeeper
第37章gistore
第38章补丁中的二进制文件
第39章云存储
第8篇是Git杂谈。其中第40章的内容可供跨平台的项目组借鉴。第41章介绍了一些在前面没有涉及的Git的相关功能和特性。
第40章跨平台操作git
第41章git的其他特性
第9篇是附录。首先介绍了完整的Git命令索引,然后分别介绍了CVS、SVN、Hg与Git之间的比较和命令对照,对于有其他版本控制系统使用经验的用户而言,这一部分内容颇具参考价值。
适用读者
1.被数据同步困扰的“电脑人”
2.学习计算机课程的学生
3. 程序员
4.Android程序员
5.定制开发程序员
6.SVN用户
7. 管理员
8. 开发经理
写在最后
这份Git权威指南有11.1G,满满的干货,由于篇幅限制只能以图片的形式展示出来,需要这份学习资料的朋友,帮忙转发+关注,看评论区即可免费领取~(100%纯免费)
网友评论