zoukankan      html  css  js  c++  java
  • Git官方和创始人都推荐的Git权威指南,广度深度和实战性史无前例

     

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

     

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

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

    这本书可以说是适合所有互联网行业的程序员们,需要获取这份Git文档的小伙伴添加小助理vx:kaixindian331免费获取!

    文档内容目录

    第一篇初识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文档的小伙伴可以添加小助理vx:kaixindian331免费获取!

    在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文档的小伙伴可以添加小助理vx:kaixindian331免费获取!

     

    这份PDF600多页就不给大家全部展示了,需要获取这份Git文档的小获取可以添加小助理vx:kaixindian331免费获取!

  • 相关阅读:
    [转]当鼠标点击ListView下面的空白区域时,如何使ListView的原item选项仍然为选中状态
    [转]图像处理去噪的方法
    C# 图片上画连线时 自定义两点间的划线段样式
    C# WinForm (笨方法)根据不同的样式配置 设置窗体相关控件的背景 以改变窗体风格
    [转]sqlserver 数据类型 及使用考虑
    C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏
    [转]C# 画圆角矩形
    Ruby常用的内部变量
    document.getElementsByClassName的理想实现
    转:ie6与firefox操作iframe中DOM节点的一点不同
  • 原文地址:https://www.cnblogs.com/1030x/p/13280029.html
Copyright © 2011-2022 走看看