互联网
类型
6.0
豆瓣评分
可以朗读
语音朗读
146千字
字数
2016-12-01
发行日期
展开全部
主编推荐语
本书适合从事项目开发的专业人士阅读,想要学习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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。