先给大家看一下大佬们对这本书的评价,免得说我“标题党”

 

版本控制是管理数据变更的艺术,无论数据变更是来自同一个人,还是来自不同的人(一个团队)。版本控制系统不但要忠实地记录数据的每一次变更, 还要能够帮助还原任何一-次历史变更,以及实现团队的协同工作等。Git就是版本控制系统中的佼佼者。

当开源软件纷纷倒向分布式版本控制系统大旗(尤其是Git)的时候,很多商业公司也在行动了,尤其是涉及异地团队协同和Android核心代码定制开发的公司。对于那些因保守而不敢向Git靠拢的公司,Git 也可以派上用场,因为Git可以与现在大多数公司部署的SVN很好地协同,即公司的服务器是SVN,开发者的客户端则使用Git。相信随着Git的普及,以及公司在代码管理观念上的改进,会有更多的公司拥抱Git。

这本书可以说是适合所有互联网行业的程序员们,需要获取这份Git文档的小伙伴可以转发+关注后私信(666)免费获取!

 

文档内容目录

第一篇初识Git

第1篇讲解了Git的相关概念,以及安装和配置的方法,共3章。第1章介绍了版本控.制的历史。第2章用十几个小例子介绍了Git的- - 些闪亮特性,期待这些特性能够让你爱上Git。第3章则介绍了Git在三种主要操作系统平台上的安装和使用。在本书的写作过程中,我70%的时间使用的是DebianLinux操作系统,Linux用户可以毫无障碍地完成本书列举的所有实践操作。在2010年年底,当得知有出版社愿意出版这本书后,我向妻子阿巧预支了未来的部分稿费购买了我的第--台MacBookPro,于是本书就有了较为详实的如何在Macosx下安装和使用Git的内容,以及在本书第22章中介绍的关于Topgit在MacOSX.上的部署和改进相关的内容。在本书的编辑和校对过程中因为要使用Word格式的文稿,所以本书后期的很多工作是在运行于VirtualBox 下的Windows虚拟机中完成的,即使是使用运行于资源受限的虚拟机中的Cygwin, Git 依然完美地完成了工作。

  • 第1章版本控制的前世和今生
  • 第2章爱上git的理由
  • 第3章gi t的安装和使用

第二篇Git独奏

第三篇Git和声

第2篇和第3篇详细讲解了Git的使用方法,是本书的基础和核心,大约占据」全书40%的篇幅。这两篇的内容架构方式是我在进行SVN培训时就已经形成的习惯,即以“独奏”指代一个人的版本控制所要讲述的知识点,以“和声”指代团队版本控制涉及的话题。在第2篇“Git独奏”中,本书将Git的设计原理穿插在各章之中讲解,因为唯有了解真相(Git原理),才有可能自由(掌握Git)。 在第3篇“Git和声”中,本书讲解了团队版本控制必须掌握的里程碑和分支等概念,以及如何解决合并中遇到的冲突。

  • 第4章git初始化
  • 第5章git暂存区
  • 第6章git对象
  • 第7章git重置
  • 第8章git检出
  • 第9章恢复进度
  • 第10章git 基本操作
  • 第11章历史穿梭
  • 第12章改变历史
  • 第13章git克隆
  • 第14章git库管理
  • 第15章 gi t协议与工作协同
  • 第16章 冲突解决
  • 第17章 git 里程碑
  • 第18章 git分支
  • 第19章远程版本库
  • 第20章 补丁文件交互

第4篇git协同模型

第4篇细致地讲解了Git在实际工作中的使用模式。除了传统的集中式和分布式使用模式之外,第22章还介绍了Topgit在定制开发中的应用,这也是我公司在使用Git时采用的最主要的模式。这一章还讲解了我对Topgit所做的部分改进,相关的具体介绍最早出现在我公司的博客.上。第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协同模型

第五篇搭建Git服务器

第5篇介绍了Git服务器的架设。本篇是全书最早开始撰写的部分,这是因为我给客户做的Git培训讲义的相关内容不够详细,于是应客户要求针对Gitolite等服务器的架设撰写了详细的管理员手册,即本书的第30章。第32章介绍了Android项目在Git管理上的又一大创造,即Gerrit,它实现了一个独特的集中式Git版本库管理模型。

 

  • 第27章使用http协议
  • 第28章使用git 协议
  • 第29章使用ssh协议
  • 第30章gitolite 服务架设
  • 第31章gi tosis服务架设
  • 第32章gerrit 代码审核服务器
  • 第33章git版本库托管

第六篇转移到Git

第6篇讲解了Git版本库的迁移。其中第34章详细介绍了从CVS版本库到Git版本库的迁移,其迁移过程也可以作为从cVs到SVN迁移的借鉴。本篇还介绍了从SVN和Hg版本库到Git的迁移。对于其他类型的版本库,介绍了一个通用的需要编程来实现的方法。在本篇的最后还介绍了一个Git版本库整理的利器,可以理解为一个Git库转换为另外--个Git.库的方法。

  • 第34章CV s版本库到gi t的迁移
  • 第35章更多版本控制系统的迁移

第七篇Git的其他应用

第7篇是关于Git的其他应用,其主要内容介绍了我在etckeeper启发下开发的一款备份工具Gistore,该工具可以运行于Linux和Mac OS X下。

 

  • 第36章etckeeper
  • 第37章gistore
  • 第38章补丁中的二进制文件
  • 第39章云存储

第八篇Git杂谈

第8篇是Git杂谈。其中第40章的内容可供跨平台的项目组借鉴。第41章介绍了一些在前面没有涉及的Git的相关功能和特性。

 

  • 第40章跨平台操作git
  • 第41章git的其他特性

这本书可以说是适合所有互联网行业的程序员们,需要获取这份Git文档的小伙伴可以转发+关注后私信(666)免费获取!

在Mac OS X下安装和使用Git

Mac OS X被称为最人性化的操作系统之一,工作在Mac.上是件非常惬意的事情,工作中又怎能没有Git呢?

 

理解Git暂存区( stage)

将.上面的实践从头至尾操作一遍,不知道您的感想如何:

  • 被眼花缭乱的Git魔法彻底搞糊涂了?”
  • Git为什么这么折磨人,修改的文件直接提交不就完了吗?”
  • 看不出Git这么做有什么好处?”

 

图形工具: gitk

gitk是最早实现的-一个图形化的Git版本库浏览器软件,基于Tcl/Tk实现,因此gitk非常简洁,本身就是由一个1万多行的tcl脚本写成的。gitk 的代码已经和Git的代码放在了同一个版本库中, gitk随Git一同发布,不用特别地安装即可运行。gitk可以显示提交的分支图,可以显示提交、文件、版本间的差异等。在版本库中调用gitk,就会浏览该版本库,显示其提交的分支图。gitk 可以像命令行工具一样使用不同的参数进行调用。

 

传统集中式协同模型

对于简单的代码修改,可以像传统集中式版本控制系统(Subversion) 那样工作,参照图21-2所示的工作流程图。

 

Gerrit 的实现原理

Gerrit更准确地说应该称为Gerrit2。因为Android项目最早使用的评审服务器Gerrit不是今天这个样子的。最早版本的Gerrit是用Python开发运行于Google App Engine上的,从Python之父GuidovanRossum开发的Rietveld分支而来。在这里要讨论的Gerrit实为Gerrit2,是用Java语言实现的。

 

跨平台操作 Git

您是在什么平台(操作系统)中使用Git呢?图40-1是网上发布的一个Git使用平台调查结果的截图”,从中可以看出排在前三位的是: Linux、Mac OS X和Windows。而Windows用户中又以使用msysGit的用户居多。

 

 

这本书可以说是适合所有互联网行业的程序员们,需要获取这份Git文档的小伙伴可以转发+关注后私信(666)免费获取!

 

 

这份PDF600多页就不给大家全部展示了,需要获取这份Git文档的小获取可以转发+关注后私信(666)免费获取!