展开全部

主编推荐语

本书适合从事项目开发的专业人士阅读,想要学习Git的读者也可以选用。

内容简介

Git是一款免费、开源的分布式版本控制系统,也是当今流行的版本控制系统之一,在众多的项目开发中普遍使用,得到程序员和工程师的欢迎和喜爱。
本书是一本面向专业开发者的图书。全书内容分为26章,从基础概念讲起,陆续向读者介绍了有关Git的各种操作和使用技巧,不仅将提交、版本库、分支、合并等命令讲解到位,还介绍了工作流、基于分支的开发、二分法排错、发行版交付、项目的拆分与合并、项目的迁移等内容。

目录

  • 版权信息
  • 内容提要
  • 前言
  • 第1章 基本概念
  • 1.1 分布式版本控制,有何过人之处
  • 1.2 版本库,分布式工作的基础所在
  • 1.3 分支的创建与合并很简单
  • 1.4 本章小结
  • 第2章 入门
  • 2.1 准备Git环境
  • 2.2 第一个Git项目
  • 2.2.1 创建版本库
  • 2.2.2 首次提交
  • 2.2.3 检查状态
  • 2.2.4 提交修改
  • 2.2.5 显示历史
  • 2.3 Git的协作功能
  • 2.3.1 克隆版本库
  • 2.3.2 从另一版本库中获取修改
  • 2.3.3 从任意版本库中取回修改
  • 2.3.4 创建共享版本库
  • 2.3.5 用push命令上载修改
  • 2.3.6 Pull命令:取回修改
  • 2.4 本章小结
  • 第3章 提交究竟是什么
  • 3.1 访问权限与时间戳
  • 3.2 add命令与commit命令
  • 3.3 再谈提交散列值
  • 3.4 提交历史
  • 3.5 一种略有不同的提交查看方法
  • 3.6 同一项目的多部不同历史
  • 3.6.1 部分输出:-n
  • 3.6.2 格式化输出:--format、--oneline
  • 3.6.3 统计修改信息:--stat、--shortstat
  • 3.6.4 日志选项:--graph
  • 3.7 本章小结
  • 第4章 多次提交
  • 4.1 status命令
  • 4.2 存储在暂存区中的快照
  • 4.3 怎样的修改不该被提交
  • 4.4 用.gitignore忽略非版本控制文件
  • 4.5 储藏
  • 4.6 本章小结
  • 第5章 版本库
  • 5.1 一种简单而高效的存储系统
  • 5.2 存储目录:Blob与Tree
  • 5.3 相同数据只存储一次
  • 5.4 压缩相似内容
  • 5.5 当不同文件的散列值相同时,情况会很糟糕吗
  • 5.6 提交对象
  • 5.7 提交历史中的对象重用
  • 5.8 重命名、移动与复制
  • 5.9 本章小结
  • 第6章 分支
  • 6.1 并行式开发
  • 6.2 修复旧版本中的bug
  • 6.3 分支
  • 6.4 泳道
  • 6.5 当前活跃分支
  • 6.6 重置分支指针
  • 6.7 删除分支
  • 6.8 清理提交对象
  • 6.9 本章小结
  • 第7章 合并分支
  • 7.1 合并过程中发生的事
  • 7.2 冲突
  • 7.3 编辑冲突
  • 7.4 冲突标志
  • 7.5 解决编辑冲突
  • 7.6 内容冲突又是什么呢
  • 7.7 快进合并
  • 7.8 第一父级提交历史
  • 7.9 棘手的合并冲突
  • 7.10 无论如何,终会有可行的方式
  • 7.11 本章小结
  • 第8章 通过变基净化历史
  • 8.1 工作原理:复制提交
  • 8.2 避免“钻石链”
  • 8.3 什么情况下会遇到冲突呢
  • 8.4 移植分支
  • 8.5 执行变基后原提交的情况
  • 8.6 为什么提交的原件与副本存在于同一版本库中是有问题的
  • 8.7 捡取
  • 8.8 本章小结
  • 第9章 版本库间的交换
  • 9.1 克隆版本库
  • 9.2 如何告知Git其他版本库的位置
  • 9.3 给别处的版本库起个名字
  • 9.4 获取数据
  • 9.5 远程跟踪分支:监控其他分支
  • 9.6 利用本地分支操作别处的版本库
  • 9.7 Pull = Fetch + Merge
  • 9.8 讨厌钻石链的人:请用--rebase选项
  • 9.9 push:pull的反面
  • 9.10 命名分支
  • 9.11 本章小结
  • 第10章 版本标签
  • 10.1 创建标签
  • 10.2 当前究竟存在哪些标签
  • 10.3 打印标签的散列值
  • 10.4 将标签添加到日志输出中
  • 10.5 究竟在哪个版本里呢
  • 10.6 如何修改标签呢
  • 10.7 当我们需要一个浮动标签时
  • 10.8 本章小结
  • 第11章 版本库之间的依赖
  • 11.1 与子模块之间的依赖
  • 11.2 与子树之间的依赖
  • 11.3 本章小结
  • 第12章 技巧
  • 12.1 不要慌,我们有一个引用日志
  • 12.2 忽略临时性的本地修改
  • 12.3 检查对文本文件的修改
  • 12.4 别名——Git命令的快捷方式
  • 12.5 为临时指向的提交创建分支
  • 12.6 将提交移动到另一分支
  • 第13章 工作流简介
  • 13.1 我们会在什么时候使用这些工作流呢
  • 13.1.1 项目开始阶段
  • 13.1.2 项目开发阶段
  • 13.1.3 项目交付阶段
  • 13.1.4 项目重构阶段
  • 13.2 工作流的结构
  • 13.2.1 条目
  • 13.2.2 概述
  • 13.2.3 使用要求
  • 13.2.4 工作流简述
  • 13.2.5 执行过程及其实现
  • 13.2.6 何不换一种做法
  • 第14章 项目设置
  • 14.1 概述
  • 14.2 使用要求
  • 14.3 工作流简述:设置项目
  • 14.4 执行过程及其实现
  • 14.4.1 基于项目目录创建一个新的版本库
  • 14.4.2 以文件访问的方式共享版本库
  • 14.4.3 用Git daemon来共享版本库
  • 14.4.4 用HTTP协议来共享版本库
  • 14.4.5 用SSH协议来共享版本库
  • 14.5 何不换一种做法
  • 何不放弃推送操作
  • 14.6 纯拉取操作
  • 第15章 相同分支上的开发
  • 15.1 概述
  • 15.2 使用要求
  • 15.3 工作流简述:相同分支上的开发
  • 15.4 执行过程及其实现
  • 在master分支上操作
  • 15.5 何不换一种做法
  • 何不用变基来代替合并
  • 第16章 基于特性分支的开发
  • 16.1 概述
  • 16.2 使用要求
  • 16.3 工作流简述:基于特性分支的开发
  • 16.4 执行过程及其实现
  • 16.4.1 创建特性分支
  • 16.4.2 在master分支上集成某一特性
  • 16.4.3 将master分支上所发生的修改传递给特性分支
  • 16.5 何不换一种做法
  • 16.5.1 何不直接在部分交付后的合并版本上继续后续工作
  • 16.5.2 何不到发行版即将成型时再集成特性分支
  • 16.5.3 何不交换特性分支之间的提交
  • 第17章 二分法排错
  • 17.1 概述
  • 17.2 使用要求
  • 17.3 工作流简述:二分法排错
  • 17.4 执行过程及其实现
  • 17.4.1 用二分法人工排错
  • 17.4.2 用二分法自动排错
  • 17.5 何不换一种做法
  • 何不用合并操作将测试脚本添加到旧提交中去
  • 第18章 基于构建服务器的工作
  • 18.1 概述
  • 18.2 使用要求
  • 18.3 工作流简述:基于构建服务器的工作
  • 18.4 执行过程及其实现
  • 18.4.1 预备构建服务器
  • 18.4.2 构建服务器上的Git
  • 18.4.3 比对本地开发版本与最后成功构建版本之间的差异
  • 18.4.4 基于构建历史的排错
  • 18.5 何不换一种做法
  • 18.5.1 何不使用标签
  • 18.5.2 何不将构建历史放在中央版本库中
  • 第19章 发行版交付
  • 19.1 概述
  • 19.2 使用要求
  • 19.3 工作流简述:“发行版交付”
  • 19.4 执行过程及其实现
  • 19.4.1 预备阶段:创建stable分支
  • 19.4.2 预备并创建发行版
  • 19.4.3 创建补丁
  • 19.5 何不换一种做法
  • 19.5.1 为什么不能只用标签
  • 19.5.2 何不干脆不用标签
  • 19.5.3 为什么不能用快进式合并
  • 19.5.4 为什么不直接在stable分支上实现补丁
  • 第20章 拆分大项目
  • 20.1 概述
  • 20.2 使用要求
  • 20.3 工作流简述:“拆分大项目”
  • 20.4 执行过程及其实现
  • 20.4.1 拆分模块版本库
  • 20.4.2 将拆分出的模块作为外部版本库集成
  • 20.5 何不换一种做法
  • 20.5.1 何不采用一个全新的版本库
  • 20.5.2 为什么不采用 --subdirectory-filter选项
  • 第21章 合并小型项目
  • 21.1 概述
  • 21.2 使用要求
  • 21.3 工作流简述:“合并小项目”
  • 21.4 执行过程及其实现
  • 合并版本库
  • 21.5 何不换一种做法
  • 为什么不直接合并,跳过创建项目文件目录
  • 第22章 外包长历史记录
  • 22.1 概述
  • 22.2 使用要求
  • 22.3 工作流简述:“外包长历史记录”
  • 22.4 执行过程及其实现
  • 22.4.1 外包项目历史
  • 22.4.2 链接到当前活动版本库
  • 22.5 何不换一种做法
  • 为什么不获取档案版本库(而是采用链接)
  • 第23章 与其他版本控制系统并行使用
  • 23.1 概述
  • 23.2 使用要求
  • 23.3 工作流简述:“与其他版本控制系统并行使用”
  • 23.4 执行过程及其实现
  • 23.4.1 初始部署版本库
  • 23.4.2 得到中央版本控制管理中的更新修改
  • 23.4.3 将修改提交传输到中央本版控制系统
  • 23.5 何不换一种做法
  • 为什么不选择一个Git版本库
  • 第24章 迁移到Git
  • 24.1 概述
  • 24.2 使用要求
  • 24.3 工作流简述:“迁移到Git”
  • 24.4 执行过程及其实现
  • 24.4.1 学习和练习使用Git
  • 24.4.2 做出迁移的决定
  • 24.4.3 找到分支
  • 24.4.4 准备版本库
  • 24.4.5 获取分支
  • 24.4.6 以怀疑的态度使用接受这个版本库
  • 24.4.7 清理工作
  • 24.5 何不换一种做法
  • 24.5.1 为什么不接收整个项目历史
  • 24.5.2 是否可以没有遗产分支
  • 24.5.3 没有双版本控制工作区可以吗
  • 第25章 还有一些其他任务
  • 25.1 交互式变基操作——完善历史记录
  • 25.2 补丁处理
  • 25.3 用E-mail发送补丁
  • 25.4 打包操作——离线模式下的推送操作
  • 25.5 创建归档
  • 25.6 Git的图形化工具
  • 25.7 与Subversion的协作
  • 25.8 命令别名
  • 25.9 标注提交
  • 25.10 用钩子扩展Git
  • 25.11 将版本库托管到Github上
  • 第26章 Git的缺点
  • 26.1 高复杂度
  • 26.2 复杂的子模块
  • 26.3 大型二进制文件的资源消耗
  • 26.4 版本库只能作为一个整体被处理
  • 26.5 版本库只能作为整体被授权
  • 26.6 能用于历史分析的图形化工具偏弱
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。