Git权威指南

Git权威指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2011-07
版次: 1
ISBN: 9787111349679
定价: 89.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 595页
  •   《Git指南》是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实战性上让同类作品望尘莫及。作者是国内的版本控制专家和咨询顾问之一,本书得到了Git官方维护者JunioCHamano和ITeye创始人范凯(Robbin)先生等数位专家的高度认可和极力推荐,性毋庸置疑。

      全书一共9篇,共41章和4个附录,内容几乎涵盖了Git的所有方面。第1篇介绍了版本控制工具的演变历史、Git的各种优点,以及它在3种主流操作系统中的安装与配置。第2篇和第3篇既是本书的基础,又是本书的核心,不仅介绍了Git的操作和使用,而且还讲解了Git的原理。第2篇详细讲解了个人用户如何使用Git,包括Git初始化、日常操作、暂存区、对象、重置、检出、恢复进度、历史变更、克隆、库管理等;第3篇详细讲解了Git协议和团队如何使用Git,包括Git支持的协议、冲突解决、里程碑、分支、远程版本库和补丁文件交互等。第4篇全面介绍了Git的协同模型,即它在实际工作中的使用模式,包括各种经典的Git协同模型、Topgit协同模型、子模组协同模型、子树合并、Android多版本库协同、Git与SVN协同模型等。第5篇介绍了Git服务器的架设,首先讲解了HTTP协议、Git协议、SSH协议的使用,然后讲解了Gitolite、Gitosis、Gerrit等服务器的架设方法,最后还讲解了Git版本库的托管。第6篇介绍了版本库的迁移,包括如何从CVS、SVN、Hg等版本库迁移到Git,以及Git版本库整理等方面的内容。第7篇讲解了Git的其他应用,包括etckeeper、Gistore等的安装、配置和使用,以及补丁中的二进制文件和云存储等内容。第8篇介绍了Git的跨平台操作,以及它的钩子和模板、稀疏检出和浅克隆、嫁接和替换等重要特性。第9篇是附录,详细给出了Git的命令索引,以及CVS、SVN和Hg与Git的比较与命令对照,方便读者查阅。   蒋鑫,国内的版本控制专家和咨询顾问之一,对Subversion和Git等版本控制工具有十分深入的研究,参与了Git以及Gitosis、Gitolite、Repo、Topgit、Gistore等与Git相关的开源软件的开发或创建,在大量实践中积累了丰富的经验。此外,他还是一位开源软件实践者,作为北京群英汇信息技术有限公司的创始人兼高级顾问,一直从事开源软件的定制以及面向研发团队的项目管理软件的推广和顾问咨询工作,致力于推动开源软件在中国的发展。 前言
    第1篇 初识Git
    第1章 版本控制的前世和今生
    1.1 黑暗的史前时代
    1.2 CVS—开启版本控制大爆发
    1.3 SVN—集中式版本控制集大成者
    1.4 Git—Linus 的第二个伟大作品
    第2章 爱上 Git 的理由
    2.1 每日工作备份
    2.2 异地协同工作
    2.3 现场版本控制
    2.4 避免引入辅助目录
    2.5 重写提交说明
    2.6 想吃后悔药
    2.7 更好用的提交列表
    2.8 更好的差异比较
    2.9 工作进度保存
    2.10 代理SVN提交实现移动式办公
    2.11 无处不在的分页器
    2.12 快
    第3章 Git的安装和使用
    3.1 在Linux 下安装和使用 Git
    3.1.1 包管理器方式安装
    3.1.2 从源代码进行安装
    3.1.3 从Git版本库进行安装
    3.1.4 命令补齐
    3.1.5 中文支持
    3.2 在Mac OS X 下安装和使用 Git
    3.2.1 以二进制发布包的方式安装
    3.2.2 安装 Xcode
    3.2.3 使用 Homebrew 安装 Git
    3.2.4 从Git源码进行安装
    3.2.5 命令补齐
    3.2.6 其他辅助工具的安装
    3.2.7 中文支持
    3.3 在Windows 下安装和使用 Git(Cygwin篇)
    3.3.1 安装 Cygwin
    3.3.2 安装 Git
    3.3.3 Cygwin 的配置和使用
    3.3.4 Cygwin 下 Git 的中文支持
    3.3.5 Cygwin 下 Git 访问 SSH 服务
    3.4 Windows 下安装和使用 Git(msysGit篇)
    3.4.1 安装 msysGit
    3.4.2 msysGit 的配置和使用
    3.4.3 msysGit中shell环境的中文支持
    3.4.4 msysGit中Git的中文支持
    3.4.5 使用 SSH 协议
    3.4.6 TortoiseGit 的安装和使用
    3.4.7 TortoiseGit 的中文支持
    第2篇 Git独奏
    第4章 Git 初始化
    4.1 创建版本库及第一次提交
    4.2 思考:为什么工作区根目录下有一个 .git 目录
    4.3 思考:git config 命令的各参数有何区别
    4.4 思考:是谁完成的提交
    4.5 思考:随意设置提交者姓名,是否太不安全
    4.6 思考:命令别名是干什么的
    4.7 备份本章的工作成果
    第5章 Git 暂存区
    5.1 修改不能直接提交吗
    5.2 理解 Git 暂存区(stage)
    5.3 Git Diff 魔法
    5.4 不要使用 git commit -a
    5.5 搁置问题,暂存状态
    第6章 Git对象
    6.1 Git对象库探秘
    6.2 思考:SHA1 哈希值到底是什么,是如何生成的
    6.3 思考:为什么不用顺序的数字来表示提交
    第7章 Git 重置
    7.1 分支游标master探秘
    7.2 用 reflog 挽救错误的重置
    7.3 深入了解git reset命令
    第8章 Git 检出
    8.1 HEAD 的重置即检出
    8.2 挽救分离头指针
    8.3 深入了解 git checkout 命令
    第9章 恢复进度
    9.1 继续暂存区未完成的实践
    9.2 使用 git stash
    9.3 探秘 git stash
    第10章 Git 基本操作
    10.1 先来合个影
    10.2 删除文件
    10.2.1 本地删除不是真的删除
    10.2.2 执行 git rm 命令删除文件
    10.2.3 命令git add -u快速标记删除
    10.3 恢复删除的文件
    10.4 移动文件
    10.5 一个显示版本号的 Hello World
    10.6 使用 git add -i 选择性添加
    10.7 Hello World 引发的新问题
    10.8 文件忽略
    10.9 文件归档
    第11章 历史穿梭
    11.1 图形工具:gitk
    11.2 图形工具:gitg
    11.3 图形工具:qgit
    11.4 命令行工具
    11.4.1 版本表示法:git rev-parse
    11.4.2 版本范围表示法:git rev-list
    11.4.3 浏览日志:git log
    11.4.4 差异比较:git diff
    11.4.5 文件追溯:git blame
    11.4.6 二分查找:git bisect
    11.4.7 获取历史版本
    第12章 改变历史
    12.1 悔棋
    12.2 多步悔棋
    12.3 回到未来
    12.3.1 时间旅行一
    12.3.2 时间旅行二
    12.3.3 时间旅行三
    12.4 丢弃历史
    12.5 反转提交
    第13章 Git 克隆
    13.1 鸡蛋不装在一个篮子里
    13.2 对等工作区
    13.3 克隆生成裸版本库
    13.4 创建生成裸版本库
    第14章 Git库管理
    14.1 对象和引用哪里去了
    14.2 暂存区操作引入的临时对象
    14.3 重置操作引入的对象
    14.4 Git管家:git-gc
    14.5 Git管家的自动执行
    第3篇 Git和声
    第15章 Git协议与工作协同
    15.1 Git 支持的协议
    15.2 多用户协同的本地模拟
    15.3 强制非快进式推送
    15.4 合并后推送
    15.5 禁止非快进式推送
    第16章 冲突解决
    16.1 拉回操作中的合并
    16.2 合并一:自动合并
    16.2.1 修改不同的文件
    16.2.2 修改相同文件的不同区域
    16.2.3 同时更改文件名和文件内容
    16.3 合并二:逻辑冲突
    16.4 合并三:冲突解决
    16.4.1 手工编辑完成冲突解决
    16.4.2 图形工具完成冲突解决
    16.5 合并四:树冲突
    16.5.1 手工操作解决树冲突
    16.5.2 交互式解决树冲突
    16.6 合并策略
    16.7 合并相关的设置
    第17章 Git 里程碑
    17.1 显示里程碑
    17.2 创建里程碑
    17.2.1 轻量级里程碑
    17.2.2 带说明的里程碑
    17.2.3 带签名的里程碑
    17.3 删除里程碑
    17.4 不要随意更改里程碑
    17.5 共享里程碑
    17.6 删除远程版本库的里程碑
    17.7 里程碑命名规范
    第18章 Git 分支
    18.1 代码管理之殇
    18.1.1 发布分支
    18.1.2 特性分支
    18.1.3 卖主分支
    18.2 分支命令概述
    18.3 “Hello World”开发计划
    18.4 基于特性分支的开发
    18.4.1 创建分支 user1
    18.4.2 创建分支 user2
    18.4.3 开发者 user1 完成功能开发
    18.4.4 将 user1
    18.5 基于发布分支的开发
    18.5.1 创建发布分支
    18.5.2 开发者 user1 工作在发布分支
    18.5.3 开发者 user2 工作在发布分支
    18.5.4 开发者 user2 合并推送
    18.5.5 发布分支的提交合并到主线
    18.6 分支变基
    18.6.1 完成 user2
    18.6.2 分支 user2
    第19章 远程版本库
    19.1 远程分支
    19.2 分支追踪
    19.3 远程版本库
    19.4 PUSH 和 PULL 操作与远程版本库
    19.5 里程碑和远程版本库
    19.6 分支和里程碑的安全性
    第20章 补丁文件交互
    20.1 创建补丁
    20.2 应用补丁
    20.3 StGit 和 Quilt
    20.3.1 StGit
    20.3.2 Quilt
    第4篇 Git协同模型
    第21章 经典Git协同模型
    21.1 集中式协同模型
    21.1.1 传统集中式协同模型
    21.1.2 Gerrit 特殊的集中式协同模型
    21.2 金字塔式协同模型
    21.2.1 贡献者开放只读版本库
    21.2.2 以补丁方式贡献代码
    第22章 Topgit 协同模型
    22.1 作者版本控制系统的三个里程碑
    22.2 Topgit 原理
    22.3 Topgit 的安装
    22.4 Topgit 的使用
    22.5 用Topgit方式改造Topgit
    22.6 Topgit 使用中的注意事项
    第23章 子模组协同模型
    23.1 创建子模组
    23.2 克隆带子模组的版本库
    23.3 在子模组中修改和子模组的更新
    23.4 隐性子模组
    23.5 子模组的管理问题
    第24章 子树合并
    24.1 引入外部版本库
    24.2 子目录方式合并外部版本库
    24.3 利用子树合并跟踪上游改动
    24.4 子树拆分
    24.5 git-subtree 插件
    第25章 Android 式多版本库协同
    25.1 关于 repo
    25.2 安装 repo
    25.3 repo和清单库的初始化
    25.4 清单库和清单文件
    25.5 同步项目
    25.6 建立 Android 代码库本地镜像
    25.7 repo 的命令集
    25.8 repo 命令的工作流
    25.9 好东西不能 Android 独享
    25.9.1 repo+Gerrit 模式
    25.9.2 repo 无审核模式
    25.9.3 改进的 repo 无审核模式
    第26章 Git 和 SVN 协同模型
    26.1 使用 git-svn 的一般流程
    26.2 git-svn 的奥秘
    26.2.1 Git 库配置文件的扩展及分支映射
    26.2.2 Git工作分支和 Subversion 如何对应
    26.2.3 其他辅助文件
    26.3 多样的 git-svn 克隆模式
    26.4 共享 git-svn 的克隆库
    26.5 git-svn 的局限
    第5篇 搭建Git服务器
    第27章 使用 HTTP 协议
    27.1 哑传输协议
    27.2 智能 HTTP 协议
    27.3 Gitweb 服务器
    27.3.1 Gitweb的安装
    27.3.2 Gitweb的配置
    27.3.3 版本库的 Gitweb 相关设置
    27.3.4 即时Gitweb服务
    第28章 使用 Git 协议
    28.1 Git 协议语法格式
    28.2 Git 服务软件
    28.3 以 inetd 方式配置运行
    28.4 以 runit 方式配置运行
    第29章 使用 SSH 协议
    29.1 SSH 协议语法格式
    29.2 服务架设方式比较
    29.3 关于 SSH 公钥认证
    29.4 关于 SSH 主机别名
    第30章 Gitolite 服务架设
    30.1 安装Gitolite
    30.1.1 服务器端创建专用账号
    30.1.2 Gitolite 的安装
    30.1.3 关于 SSH 主机别名
    30.1.4 其他的安装方法
    30.2 管理 Gitolite
    30.2.1 管理员克隆 gitolite-admin 管理库
    30.2.2 增加新用户
    30.2.3 更改授权
    30.3 Gitolite 授权详解
    30.3.1 授权文件的基本语法
    30.3.2 定义用户组和版本库组
    30.3.3 版本库ACL
    30.3.4 Gitolite 授权机制
    30.4 版本库授权案例
    30.4.1 对整个版本库进行授权
    30.4.2 通配符版本库的授权
    30.4.3 用户自己的版本库空间
    30.4.4 对引用的授权:传统模式
    30.4.5 对引用的授权:扩展模式
    30.4.6 对引用的授权:禁用规则的使用
    30.4.7 用户分支
    30.4.8 对路径的写授权
    30.5 创建新版本库
    30.5.1 在配置文件中出现的版本库,即时生成
    30.5.2 通配符版本库,管理员通过推送创建
    30.5.3 直接在服务器端创建
    30.6 对 Gitolite 的改进
    30.7 Gitolite 功能拓展
    30.7.1 版本库镜像
    30.7.2 Gitweb 和 Git daemon 支持
    30.7.3 其他功能拓展和参考
    第31章 Gitosis 服务架设
    31.1 安装 Gitosis
    31.1.1 Gitosis 的安装
    31.1.2 服务器端创建专用账号
    31.1.3 Gitosis 服务初始化
    31.2 管理 Gitosis
    31.2.1 管理员克隆 gitolit-admin 管理库
    31.2.2 增加新用户
    31.2.3 更改授权
    31.3 Gitosis 授权详解
    31.3.1 Gitosis 默认设置
    31.3.2 管理版本库 gitosis-admin
    31.3.3 定义用户组和授权
    31.3.4 Gitweb 整合
    31.4 创建新版本库
    31.5 轻量级管理的 Git 服务
    第32章 Gerrit 代码审核服务器
    32.1 Gerrit 的实现原理
    32.2 架设 Gerrit 的服务器
    32.3 Gerrit 的配置文件
    32.4 Gerrit 的数据库访问
    32.5 立即注册为 Gerrit 管理员
    32.6 管理员访问 SSH 的管理接口
    32.7 创建新项目
    32.8 从已有的 Git 库创建项目
    32.9 定义评审工作流
    32.10 Gerrit 评审工作流实战
    32.10.1 开发者在本地版本库中工作
    32.10.2 开发者向审核服务器提交
    32.10.3 审核评审任务
    32.10.4 评审任务没有通过测试
    32.10.5 重新提交新的补丁集
    32.10.6 新修订集通过评审
    32.10.7 从远程版本库更新
    32.11 更多 Gerrit 参考
    第33章 Git 版本库托管
    33.1 Github
    33.2 Gitorious
    第6篇 迁移到Git
    第34章 CVS版本库到Git的迁移
    34.1 安装cvs2svn(含 cvs2git)
    34.1.1 Linux下cvs2svn的安装
    34.1.2 Mac OS X 下 cvs2svn 的安装
    34.2 版本库转换的准备工作
    34.2.1 版本库转换注意事项
    34.2.2 文件名乱码问题
    34.2.3 提交说明乱码问题
    34.3 版本库转换
    34.3.1 配置文件解说
    34.3.2 运行cvs2git完成转换
    34.4 迁移后的版本库检查
    第35章 更多版本控制系统的迁移
    35.1 SVN版本库到Git的迁移
    35.2 Hg 版本库到Git的迁移
    35.3 通用版本库迁移
    35.4 Git 版本库整理
    35.4.1 环境变量过滤器
    35.4.2 树过滤器
    35.4.3 暂存区过滤器
    35.4.4 父节点过滤器
    35.4.5 提交说明过滤器
    35.4.6 提交过滤器
    35.4.7 里程碑名字过滤器
    35.4.8 子目录过滤器
    第7篇 Git的其他应用
    第36章 etckeeper
    36.1 安装 etckeeper
    36.2 配置 etckeeper
    36.3 使用 etckeeper
    第37章 Gistore
    37.1 Gistore 的安装
    37.1.1 软件依赖
    37.1.2 从源码安装 Gistore
    37.1.3 用 easy_install 安装
    37.2 Gistore 的使用
    37.2.1 创建并初始化备份库
    37.2.2 Gistore 的配置文件
    37.2.3 Gistore 的备份项管理
    37.2.4 执行备份任务
    37.2.5 查看备份日志
    37.2.6 查看及恢复备份数据
    37.2.7 备份回滚及设置
    37.2.8 注册备份任务别名
    37.2.9 自动备份:crontab
    37.3 Gistore 双机备份
    第38章 补丁中的二进制文件
    38.1 Git 版本库中二进制文件变更的支持
    38.2 对非 Git 版本库中二进制文件变更的支持
    38.3 其他工具对 Git 扩展补丁文件的支持
    第39章 云存储
    39.1 现有云存储的问题
    39.2 Git 式云存储畅想
    第8篇 Git杂谈
    第40章 跨平台操作 Git
    40.1 字符集问题
    40.2 文件名大小写问题
    40.3 换行符问题
    第41章 Git 的其他特性
    41.1 属性
    41.1.1 属性定义
    41.1.2 属性文件及优先级
    41.1.3 常用属性介绍
    41.2 钩子和模板
    41.2.1 Git 钩子
    41.2.2 Git 模板
    41.3 稀疏检出和浅克隆
    41.3.1 稀疏检出
    41.3.2 浅克隆
    41.4 嫁接和替换
    41.4.1 提交嫁接
    41.4.2 提交替换
    41.5 Git 评注
    41.5.1 评注的奥秘
    41.5.2 评注相关命令
    41.5.3 评注相关配置
    第9篇 附录
    附录A Git 命令索引
    A.1 常用的Git命令
    A.2 对象库操作相关命令
    A.3 引用操作相关命令
    A.4 版本库管理相关命令
    A.5 数据传输相关命令
    A.6 邮件相关命令
    A.7 协议相关命令
    A.8 版本库转换和交互相关命令
    A.9 合并相关的辅助命令
    A.10 杂项
    附录B Git 与 CVS 面对面
    B.1 面对面访谈录
    B.2 Git 和CVS 命令对照
    附录C Git 与 SVN 面对面
    C.1 面对面访谈录
    C.2 Git 和SVN 命令对照
    附录D Git 与 Hg 面对面
    D.1 面对面访谈录
    D.2 Git和Hg 命令对照
  • 内容简介:
      《Git指南》是Git领域的集大成之作,是一本关于Git的百科全书,在广度、深度和实战性上让同类作品望尘莫及。作者是国内的版本控制专家和咨询顾问之一,本书得到了Git官方维护者JunioCHamano和ITeye创始人范凯(Robbin)先生等数位专家的高度认可和极力推荐,性毋庸置疑。

      全书一共9篇,共41章和4个附录,内容几乎涵盖了Git的所有方面。第1篇介绍了版本控制工具的演变历史、Git的各种优点,以及它在3种主流操作系统中的安装与配置。第2篇和第3篇既是本书的基础,又是本书的核心,不仅介绍了Git的操作和使用,而且还讲解了Git的原理。第2篇详细讲解了个人用户如何使用Git,包括Git初始化、日常操作、暂存区、对象、重置、检出、恢复进度、历史变更、克隆、库管理等;第3篇详细讲解了Git协议和团队如何使用Git,包括Git支持的协议、冲突解决、里程碑、分支、远程版本库和补丁文件交互等。第4篇全面介绍了Git的协同模型,即它在实际工作中的使用模式,包括各种经典的Git协同模型、Topgit协同模型、子模组协同模型、子树合并、Android多版本库协同、Git与SVN协同模型等。第5篇介绍了Git服务器的架设,首先讲解了HTTP协议、Git协议、SSH协议的使用,然后讲解了Gitolite、Gitosis、Gerrit等服务器的架设方法,最后还讲解了Git版本库的托管。第6篇介绍了版本库的迁移,包括如何从CVS、SVN、Hg等版本库迁移到Git,以及Git版本库整理等方面的内容。第7篇讲解了Git的其他应用,包括etckeeper、Gistore等的安装、配置和使用,以及补丁中的二进制文件和云存储等内容。第8篇介绍了Git的跨平台操作,以及它的钩子和模板、稀疏检出和浅克隆、嫁接和替换等重要特性。第9篇是附录,详细给出了Git的命令索引,以及CVS、SVN和Hg与Git的比较与命令对照,方便读者查阅。
  • 作者简介:
      蒋鑫,国内的版本控制专家和咨询顾问之一,对Subversion和Git等版本控制工具有十分深入的研究,参与了Git以及Gitosis、Gitolite、Repo、Topgit、Gistore等与Git相关的开源软件的开发或创建,在大量实践中积累了丰富的经验。此外,他还是一位开源软件实践者,作为北京群英汇信息技术有限公司的创始人兼高级顾问,一直从事开源软件的定制以及面向研发团队的项目管理软件的推广和顾问咨询工作,致力于推动开源软件在中国的发展。
  • 目录:
    前言
    第1篇 初识Git
    第1章 版本控制的前世和今生
    1.1 黑暗的史前时代
    1.2 CVS—开启版本控制大爆发
    1.3 SVN—集中式版本控制集大成者
    1.4 Git—Linus 的第二个伟大作品
    第2章 爱上 Git 的理由
    2.1 每日工作备份
    2.2 异地协同工作
    2.3 现场版本控制
    2.4 避免引入辅助目录
    2.5 重写提交说明
    2.6 想吃后悔药
    2.7 更好用的提交列表
    2.8 更好的差异比较
    2.9 工作进度保存
    2.10 代理SVN提交实现移动式办公
    2.11 无处不在的分页器
    2.12 快
    第3章 Git的安装和使用
    3.1 在Linux 下安装和使用 Git
    3.1.1 包管理器方式安装
    3.1.2 从源代码进行安装
    3.1.3 从Git版本库进行安装
    3.1.4 命令补齐
    3.1.5 中文支持
    3.2 在Mac OS X 下安装和使用 Git
    3.2.1 以二进制发布包的方式安装
    3.2.2 安装 Xcode
    3.2.3 使用 Homebrew 安装 Git
    3.2.4 从Git源码进行安装
    3.2.5 命令补齐
    3.2.6 其他辅助工具的安装
    3.2.7 中文支持
    3.3 在Windows 下安装和使用 Git(Cygwin篇)
    3.3.1 安装 Cygwin
    3.3.2 安装 Git
    3.3.3 Cygwin 的配置和使用
    3.3.4 Cygwin 下 Git 的中文支持
    3.3.5 Cygwin 下 Git 访问 SSH 服务
    3.4 Windows 下安装和使用 Git(msysGit篇)
    3.4.1 安装 msysGit
    3.4.2 msysGit 的配置和使用
    3.4.3 msysGit中shell环境的中文支持
    3.4.4 msysGit中Git的中文支持
    3.4.5 使用 SSH 协议
    3.4.6 TortoiseGit 的安装和使用
    3.4.7 TortoiseGit 的中文支持
    第2篇 Git独奏
    第4章 Git 初始化
    4.1 创建版本库及第一次提交
    4.2 思考:为什么工作区根目录下有一个 .git 目录
    4.3 思考:git config 命令的各参数有何区别
    4.4 思考:是谁完成的提交
    4.5 思考:随意设置提交者姓名,是否太不安全
    4.6 思考:命令别名是干什么的
    4.7 备份本章的工作成果
    第5章 Git 暂存区
    5.1 修改不能直接提交吗
    5.2 理解 Git 暂存区(stage)
    5.3 Git Diff 魔法
    5.4 不要使用 git commit -a
    5.5 搁置问题,暂存状态
    第6章 Git对象
    6.1 Git对象库探秘
    6.2 思考:SHA1 哈希值到底是什么,是如何生成的
    6.3 思考:为什么不用顺序的数字来表示提交
    第7章 Git 重置
    7.1 分支游标master探秘
    7.2 用 reflog 挽救错误的重置
    7.3 深入了解git reset命令
    第8章 Git 检出
    8.1 HEAD 的重置即检出
    8.2 挽救分离头指针
    8.3 深入了解 git checkout 命令
    第9章 恢复进度
    9.1 继续暂存区未完成的实践
    9.2 使用 git stash
    9.3 探秘 git stash
    第10章 Git 基本操作
    10.1 先来合个影
    10.2 删除文件
    10.2.1 本地删除不是真的删除
    10.2.2 执行 git rm 命令删除文件
    10.2.3 命令git add -u快速标记删除
    10.3 恢复删除的文件
    10.4 移动文件
    10.5 一个显示版本号的 Hello World
    10.6 使用 git add -i 选择性添加
    10.7 Hello World 引发的新问题
    10.8 文件忽略
    10.9 文件归档
    第11章 历史穿梭
    11.1 图形工具:gitk
    11.2 图形工具:gitg
    11.3 图形工具:qgit
    11.4 命令行工具
    11.4.1 版本表示法:git rev-parse
    11.4.2 版本范围表示法:git rev-list
    11.4.3 浏览日志:git log
    11.4.4 差异比较:git diff
    11.4.5 文件追溯:git blame
    11.4.6 二分查找:git bisect
    11.4.7 获取历史版本
    第12章 改变历史
    12.1 悔棋
    12.2 多步悔棋
    12.3 回到未来
    12.3.1 时间旅行一
    12.3.2 时间旅行二
    12.3.3 时间旅行三
    12.4 丢弃历史
    12.5 反转提交
    第13章 Git 克隆
    13.1 鸡蛋不装在一个篮子里
    13.2 对等工作区
    13.3 克隆生成裸版本库
    13.4 创建生成裸版本库
    第14章 Git库管理
    14.1 对象和引用哪里去了
    14.2 暂存区操作引入的临时对象
    14.3 重置操作引入的对象
    14.4 Git管家:git-gc
    14.5 Git管家的自动执行
    第3篇 Git和声
    第15章 Git协议与工作协同
    15.1 Git 支持的协议
    15.2 多用户协同的本地模拟
    15.3 强制非快进式推送
    15.4 合并后推送
    15.5 禁止非快进式推送
    第16章 冲突解决
    16.1 拉回操作中的合并
    16.2 合并一:自动合并
    16.2.1 修改不同的文件
    16.2.2 修改相同文件的不同区域
    16.2.3 同时更改文件名和文件内容
    16.3 合并二:逻辑冲突
    16.4 合并三:冲突解决
    16.4.1 手工编辑完成冲突解决
    16.4.2 图形工具完成冲突解决
    16.5 合并四:树冲突
    16.5.1 手工操作解决树冲突
    16.5.2 交互式解决树冲突
    16.6 合并策略
    16.7 合并相关的设置
    第17章 Git 里程碑
    17.1 显示里程碑
    17.2 创建里程碑
    17.2.1 轻量级里程碑
    17.2.2 带说明的里程碑
    17.2.3 带签名的里程碑
    17.3 删除里程碑
    17.4 不要随意更改里程碑
    17.5 共享里程碑
    17.6 删除远程版本库的里程碑
    17.7 里程碑命名规范
    第18章 Git 分支
    18.1 代码管理之殇
    18.1.1 发布分支
    18.1.2 特性分支
    18.1.3 卖主分支
    18.2 分支命令概述
    18.3 “Hello World”开发计划
    18.4 基于特性分支的开发
    18.4.1 创建分支 user1
    18.4.2 创建分支 user2
    18.4.3 开发者 user1 完成功能开发
    18.4.4 将 user1
    18.5 基于发布分支的开发
    18.5.1 创建发布分支
    18.5.2 开发者 user1 工作在发布分支
    18.5.3 开发者 user2 工作在发布分支
    18.5.4 开发者 user2 合并推送
    18.5.5 发布分支的提交合并到主线
    18.6 分支变基
    18.6.1 完成 user2
    18.6.2 分支 user2
    第19章 远程版本库
    19.1 远程分支
    19.2 分支追踪
    19.3 远程版本库
    19.4 PUSH 和 PULL 操作与远程版本库
    19.5 里程碑和远程版本库
    19.6 分支和里程碑的安全性
    第20章 补丁文件交互
    20.1 创建补丁
    20.2 应用补丁
    20.3 StGit 和 Quilt
    20.3.1 StGit
    20.3.2 Quilt
    第4篇 Git协同模型
    第21章 经典Git协同模型
    21.1 集中式协同模型
    21.1.1 传统集中式协同模型
    21.1.2 Gerrit 特殊的集中式协同模型
    21.2 金字塔式协同模型
    21.2.1 贡献者开放只读版本库
    21.2.2 以补丁方式贡献代码
    第22章 Topgit 协同模型
    22.1 作者版本控制系统的三个里程碑
    22.2 Topgit 原理
    22.3 Topgit 的安装
    22.4 Topgit 的使用
    22.5 用Topgit方式改造Topgit
    22.6 Topgit 使用中的注意事项
    第23章 子模组协同模型
    23.1 创建子模组
    23.2 克隆带子模组的版本库
    23.3 在子模组中修改和子模组的更新
    23.4 隐性子模组
    23.5 子模组的管理问题
    第24章 子树合并
    24.1 引入外部版本库
    24.2 子目录方式合并外部版本库
    24.3 利用子树合并跟踪上游改动
    24.4 子树拆分
    24.5 git-subtree 插件
    第25章 Android 式多版本库协同
    25.1 关于 repo
    25.2 安装 repo
    25.3 repo和清单库的初始化
    25.4 清单库和清单文件
    25.5 同步项目
    25.6 建立 Android 代码库本地镜像
    25.7 repo 的命令集
    25.8 repo 命令的工作流
    25.9 好东西不能 Android 独享
    25.9.1 repo+Gerrit 模式
    25.9.2 repo 无审核模式
    25.9.3 改进的 repo 无审核模式
    第26章 Git 和 SVN 协同模型
    26.1 使用 git-svn 的一般流程
    26.2 git-svn 的奥秘
    26.2.1 Git 库配置文件的扩展及分支映射
    26.2.2 Git工作分支和 Subversion 如何对应
    26.2.3 其他辅助文件
    26.3 多样的 git-svn 克隆模式
    26.4 共享 git-svn 的克隆库
    26.5 git-svn 的局限
    第5篇 搭建Git服务器
    第27章 使用 HTTP 协议
    27.1 哑传输协议
    27.2 智能 HTTP 协议
    27.3 Gitweb 服务器
    27.3.1 Gitweb的安装
    27.3.2 Gitweb的配置
    27.3.3 版本库的 Gitweb 相关设置
    27.3.4 即时Gitweb服务
    第28章 使用 Git 协议
    28.1 Git 协议语法格式
    28.2 Git 服务软件
    28.3 以 inetd 方式配置运行
    28.4 以 runit 方式配置运行
    第29章 使用 SSH 协议
    29.1 SSH 协议语法格式
    29.2 服务架设方式比较
    29.3 关于 SSH 公钥认证
    29.4 关于 SSH 主机别名
    第30章 Gitolite 服务架设
    30.1 安装Gitolite
    30.1.1 服务器端创建专用账号
    30.1.2 Gitolite 的安装
    30.1.3 关于 SSH 主机别名
    30.1.4 其他的安装方法
    30.2 管理 Gitolite
    30.2.1 管理员克隆 gitolite-admin 管理库
    30.2.2 增加新用户
    30.2.3 更改授权
    30.3 Gitolite 授权详解
    30.3.1 授权文件的基本语法
    30.3.2 定义用户组和版本库组
    30.3.3 版本库ACL
    30.3.4 Gitolite 授权机制
    30.4 版本库授权案例
    30.4.1 对整个版本库进行授权
    30.4.2 通配符版本库的授权
    30.4.3 用户自己的版本库空间
    30.4.4 对引用的授权:传统模式
    30.4.5 对引用的授权:扩展模式
    30.4.6 对引用的授权:禁用规则的使用
    30.4.7 用户分支
    30.4.8 对路径的写授权
    30.5 创建新版本库
    30.5.1 在配置文件中出现的版本库,即时生成
    30.5.2 通配符版本库,管理员通过推送创建
    30.5.3 直接在服务器端创建
    30.6 对 Gitolite 的改进
    30.7 Gitolite 功能拓展
    30.7.1 版本库镜像
    30.7.2 Gitweb 和 Git daemon 支持
    30.7.3 其他功能拓展和参考
    第31章 Gitosis 服务架设
    31.1 安装 Gitosis
    31.1.1 Gitosis 的安装
    31.1.2 服务器端创建专用账号
    31.1.3 Gitosis 服务初始化
    31.2 管理 Gitosis
    31.2.1 管理员克隆 gitolit-admin 管理库
    31.2.2 增加新用户
    31.2.3 更改授权
    31.3 Gitosis 授权详解
    31.3.1 Gitosis 默认设置
    31.3.2 管理版本库 gitosis-admin
    31.3.3 定义用户组和授权
    31.3.4 Gitweb 整合
    31.4 创建新版本库
    31.5 轻量级管理的 Git 服务
    第32章 Gerrit 代码审核服务器
    32.1 Gerrit 的实现原理
    32.2 架设 Gerrit 的服务器
    32.3 Gerrit 的配置文件
    32.4 Gerrit 的数据库访问
    32.5 立即注册为 Gerrit 管理员
    32.6 管理员访问 SSH 的管理接口
    32.7 创建新项目
    32.8 从已有的 Git 库创建项目
    32.9 定义评审工作流
    32.10 Gerrit 评审工作流实战
    32.10.1 开发者在本地版本库中工作
    32.10.2 开发者向审核服务器提交
    32.10.3 审核评审任务
    32.10.4 评审任务没有通过测试
    32.10.5 重新提交新的补丁集
    32.10.6 新修订集通过评审
    32.10.7 从远程版本库更新
    32.11 更多 Gerrit 参考
    第33章 Git 版本库托管
    33.1 Github
    33.2 Gitorious
    第6篇 迁移到Git
    第34章 CVS版本库到Git的迁移
    34.1 安装cvs2svn(含 cvs2git)
    34.1.1 Linux下cvs2svn的安装
    34.1.2 Mac OS X 下 cvs2svn 的安装
    34.2 版本库转换的准备工作
    34.2.1 版本库转换注意事项
    34.2.2 文件名乱码问题
    34.2.3 提交说明乱码问题
    34.3 版本库转换
    34.3.1 配置文件解说
    34.3.2 运行cvs2git完成转换
    34.4 迁移后的版本库检查
    第35章 更多版本控制系统的迁移
    35.1 SVN版本库到Git的迁移
    35.2 Hg 版本库到Git的迁移
    35.3 通用版本库迁移
    35.4 Git 版本库整理
    35.4.1 环境变量过滤器
    35.4.2 树过滤器
    35.4.3 暂存区过滤器
    35.4.4 父节点过滤器
    35.4.5 提交说明过滤器
    35.4.6 提交过滤器
    35.4.7 里程碑名字过滤器
    35.4.8 子目录过滤器
    第7篇 Git的其他应用
    第36章 etckeeper
    36.1 安装 etckeeper
    36.2 配置 etckeeper
    36.3 使用 etckeeper
    第37章 Gistore
    37.1 Gistore 的安装
    37.1.1 软件依赖
    37.1.2 从源码安装 Gistore
    37.1.3 用 easy_install 安装
    37.2 Gistore 的使用
    37.2.1 创建并初始化备份库
    37.2.2 Gistore 的配置文件
    37.2.3 Gistore 的备份项管理
    37.2.4 执行备份任务
    37.2.5 查看备份日志
    37.2.6 查看及恢复备份数据
    37.2.7 备份回滚及设置
    37.2.8 注册备份任务别名
    37.2.9 自动备份:crontab
    37.3 Gistore 双机备份
    第38章 补丁中的二进制文件
    38.1 Git 版本库中二进制文件变更的支持
    38.2 对非 Git 版本库中二进制文件变更的支持
    38.3 其他工具对 Git 扩展补丁文件的支持
    第39章 云存储
    39.1 现有云存储的问题
    39.2 Git 式云存储畅想
    第8篇 Git杂谈
    第40章 跨平台操作 Git
    40.1 字符集问题
    40.2 文件名大小写问题
    40.3 换行符问题
    第41章 Git 的其他特性
    41.1 属性
    41.1.1 属性定义
    41.1.2 属性文件及优先级
    41.1.3 常用属性介绍
    41.2 钩子和模板
    41.2.1 Git 钩子
    41.2.2 Git 模板
    41.3 稀疏检出和浅克隆
    41.3.1 稀疏检出
    41.3.2 浅克隆
    41.4 嫁接和替换
    41.4.1 提交嫁接
    41.4.2 提交替换
    41.5 Git 评注
    41.5.1 评注的奥秘
    41.5.2 评注相关命令
    41.5.3 评注相关配置
    第9篇 附录
    附录A Git 命令索引
    A.1 常用的Git命令
    A.2 对象库操作相关命令
    A.3 引用操作相关命令
    A.4 版本库管理相关命令
    A.5 数据传输相关命令
    A.6 邮件相关命令
    A.7 协议相关命令
    A.8 版本库转换和交互相关命令
    A.9 合并相关的辅助命令
    A.10 杂项
    附录B Git 与 CVS 面对面
    B.1 面对面访谈录
    B.2 Git 和CVS 命令对照
    附录C Git 与 SVN 面对面
    C.1 面对面访谈录
    C.2 Git 和SVN 命令对照
    附录D Git 与 Hg 面对面
    D.1 面对面访谈录
    D.2 Git和Hg 命令对照
查看详情
好书推荐 / 更多
Git权威指南
(当代学术棱镜译丛)无尽的焦虑之梦
[法]路易·阿尔都塞 著;[法]奥利维耶·科尔佩 (法)扬·穆利耶·布唐 编;曹天羽 译
Git权威指南
文明的征程
[美]詹姆斯·亨利·布雷斯特德(James Henry Breasted) 著;李静新 周惠来 译
Git权威指南
动物的社会行为
[英]尼可拉斯·廷伯根 著;刘小涛 译
Git权威指南
印度佛教史
[印度]S.R.戈耶尔 著;黄宝生 译
Git权威指南
成为波伏瓦
凯特·柯克帕特里克 著;刘海平 译
Git权威指南
批判性思维的认知与伦理
徐贲
Git权威指南
汗青堂丛书073·美食与文明
蕾切尔·劳丹(Rachel Laudan) 著
Git权威指南
被误解的盐:你可能需要吃咸点
詹姆斯·迪尼科兰托尼奥
Git权威指南
为自然书籍制图:16世纪人体解剖和医用植物书籍中的图像、文本与论证
[日]楠川幸子 著;王彦之 译
Git权威指南
(蓝色东欧)两天的世界(上、下全2册)
乔治·伯勒伊泽
Git权威指南
历史视域中的人民主权
张爽 著;[英]理查德·伯克 昆廷·斯金纳 主编;[英]理查德·伯克、昆廷·斯金纳、张爽 译
Git权威指南
新知文库136·万有感官 听觉塑造心智
[美]塞思·霍罗威茨 著;蒋雨蒙 译