Git版本控制管理(第2版)

Git版本控制管理(第2版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Jon Loeliger) [美] (Matthew McCullough)
出版社: 人民邮电出版社
2015-03
版次: 2
ISBN: 9787115382436
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 386页
正文语种: 简体中文
原版书名: Version Control with Git, 2nd Ed
  •   Git是一款免费、开源的分布式版本控制系统,早由LinilusTorvalds创建,用于管理Linux内核开发,现已成为分布式版本控制的主流工具。  《Git版本控制管理(第2版)》是学习掌握Git的上佳教程,总共分为21章,其内容涵盖了如何在多种真实开发环境中使用Git;洞察Git的常用案例、初始任务和基本功能;如何在集中和分布式版本控制中使用Git;使用Git管理合并、冲突、补丁和差异;获得诸如重新定义变基(rebasing)、钩子(hook)以及处理子模块(子项目)等的高级技巧;Git如何与SVN版本库交互(包括SVN向Git的转换);通过GitHub导航、使用开源项目,并对开源项目做贡献。  《Git版本控制管理(第2版)》适合需要进行版本控制的开发团队成员阅读,对Git感兴趣的开发人员也可以从中获益。   JonLoeliger,是一位自由的软件开发工程师,对Linux、U-Boot和Git等开源项目颇有贡献。他在许多会议上(比如LinuxWorld)发表过Git教程相关的演讲,并为LinuxMagazine撰写了多篇Git相关的稿件。在成为自由的软件开发工程师之前,他花费了多年的时间来开发高度优化的编译器、路由器协议、Linux移植,还偶尔编写过游戏软件。Jon持有普度大学计算机科学学位。在闲暇之余,他还会在家里自行酿酒。  MatthewMcCullough,Github.com的培训副总裁,在企业软件开发领域有15年的从业经历,还是一名经常往返于世界各地的开源教育家,以及一家美国咨询公司的联合创始人。这所有的经历使得他可以与大家分享利用Git和GitHub来取得成功的相关故事。Matthew是GradleandJenkinsO’Reilly图书的特约作者,以及O’ReillyGitMasterClass系列图书的创作者。Matthew经常在NoFluffJustStuff巡回会议上发表演讲,还是DZoneGitRefCard的作者,同时还是DenverOpenSourceUsersGroups的主席。 第1章 介绍 11.1 背景 11.2 Git的诞生 21.3 先例 41.4 时间线 51.5 名字有何含义 6第2章 安装Git 72.1 使用Linux上的二进制发行版 72.1.1 Debian/Ubuntu 72.1.2 其他发行版 82.2 获取源代码 92.3 构建和安装 102.4 在Windows上安装Git 112.4.1 安装Cygwin版本的Git 122.4.2 安装独立的Git(msysGit) 13第3章 起步 163.1 Git命令行 163.2 Git使用快速入门 183.2.1 创建初始版本库 183.2.2 将文件添加到版本库中 193.2.3 配置提交作者 213.2.4 再次提交 213.2.5 查看提交 213.2.6 查看提交差异 233.2.7 版本库内文件的删除和重命名 233.2.8 创建版本库副本 243.3 配置文件 253.4 疑问 27第4章 基本的Git概念 284.1 基本概念 284.1.1 版本库 284.1.2 Git对象类型 294.1.3 索引 304.1.4 可寻址内容名称 304.1.5 Git追踪内容 314.1.6 路径名与内容 314.1.7 打包文件 324.2 对象库图示 334.3 Git在工作时的概念 354.3.1 进入.git目录 354.3.2 对象、散列和blob 364.3.3 文件和树 374.3.4 对Git使用SHA1的一点说明 384.3.5 树层次结构 404.3.6 提交 404.3.7 标签 41第5章 文件管理和索引 435.1 关于索引的一切 445.2 Git中的文件分类 445.3 使用git add 465.4 使用git commit的一些注意事项 485.4.1 使用git commit --all 485.4.2 编写提交日志消息 505.5 使用git rm 505.6 使用git mv 525.7追踪重命名注解 545.8 .gitignore文件 555.9 Git中对象模型和文件的详细视图 56第6章 提交 616.1 原子变更集 626.2 识别提交 626.2.1 绝对提交名 636.2.2 引用和符号引用 646.2.3 相对提交名 656.3 提交历史记录 676.3.1 查看旧提交 676.3.2 提交图 706.3.3 提交范围 736.4 查找提交 776.4.1 使用git bisect 786.4.2 使用git blame 826.4.3 使用Pickaxe 83第7章 分支 847.1 使用分支的原因 847.2 分支名 857.3 使用分支 867.4 创建分支 887.5 列出分支名 897.6 查看分支 897.7 检出分支 917.7.1 检出分支的一个简单例子 917.7.2 有未提交的更改时进行检出 927.7.3 合并变更到不同分支 947.7.4 创建并检出新分支 957.7.5 分离HEAD分支 967.8 删除分支 97第8章 diff 1008.1 git diff命令的格式 1018.2 简单的git diff例子 1048.3 git diff和提交范围 1088.4 路径限制的git diff 1108.5 比较SVN和Git如何产生diff 112第9章 合并 1149.1 合并的例子 1149.1.1 为合并做准备 1159.1.2 合并两个分支 1159.1.3 有冲突的合并 1179.2 处理合并冲突 1219.2.1 定位冲突的文件 1229.2.2 检查冲突 1229.2.3 Git是如何追踪冲突的 1269.2.4 结束解决冲突 1289.2.5 中止或重新启动合并 1299.3 合并策略 1309.3.1 退化合并 1329.3.2 常规合并 1349.3.3 特殊提交 1359.3.4 应用合并策略 1369.3.5 合并驱动程序 1379.4 Git怎么看待合并 1389.4.1 合并和Git的对象模型 1389.4.2 压制合并 1399.4.3 为什么不一个接一个地合并每个变更 140第10章 更改提交 14210.1 关于修改历史记录的注意事项 14310.2 使用git reset 14410.3 使用git cherry-pick 15210.4 使用git revert 15410.5 reset、revert和checkout 15410.6 修改最新提交 15510.7 变基提交 15810.7.1 使用git rebase -i 16010.7.2 变基与合并 164第11章 储藏和引用日志 17011.1 储藏 17011.2 引用日志 178第12章 远程版本库 18312.1 版本库概念 18412.1.1 裸版本库和开发版本库 18412.1.2 版本库克隆 18512.1.3 远程版本库 18612.1.4 追踪分支 18612.2 引用其他版本库 18712.2.1 引用远程版本库 18812.2.2 refspec 18912.3 使用远程版本库的示例 19112.3.1 创建权威版本库 19212.3.2 制作你自己的origin远程版本库 19312.3.3 在版本库中进行开发 19512.3.4 推送变更 19612.3.5 添加新开发人员 19712.3.6 获取版本库更新 19912.4 图解远程版本库开发周期 20312.4.1 克隆版本库 20412.4.2 交替的历史记录 20512.4.3 非快进推送 20512.4.4 获取交替历史记录 20712.4.5 合并历史记录 20812.4.6 合并冲突 20812.4.7 推送合并后的历史记录 20912.5 远程版本库配置 20912.5.1 使用git remote 21012.5.2 使用git config 21112.5.3 使用手动编辑 21212.6 使用追踪分支 21212.6.1 创建追踪分支 21212.6.2 领先和落后 21512.7 添加和删除远程分支 21612.8 裸版本库和git推送 217第13章 版本库管理 21913.1 谈谈服务器 21913.2 发布版本库 22013.2.1 带访问控制的版本库 22013.2.2 允许匿名读取访问的版本库 22113.2.3 允许匿名写入权限的版本库 22513.2.4 在GitHub上发布版本库 22513.3 有关发布版本库的建议 22713.4 版本库结构 22813.4.1 共享的版本库结构 22813.4.2 分布式版本库结构 22813.4.3 版本库结构示例 22913.5 分布式开发指南 23113.5.1 修改公共历史记录 23113.5.2 分离提交和发布的步骤 23213.5.3 没有唯一正确的历史记录 23213.6 清楚你的位置 23313.6.1 上下游工作流 23313.6.2 维护者和开发人员的角色 23413.6.3 维护者-开发人员的交互 23413.6.4 角色的两面性 23513.7 多版本库协作 23613.7.1 属于你自己的工作区 23613.7.2 从哪里开始你的版本库 23713.7.3 转换到不同的上游版本库 23813.7.4 使用多个上游版本库 23913.7.5 复刻项目 241第14章 补丁 24414.1 为什么要使用补丁 24514.2 生成补丁 24614.3 邮递补丁 25414.4 应用补丁 25614.5 坏补丁 26414.6 补丁与合并 264第15章 钩子 26515.1 安装钩子 26715.1.1 钩子示例 26715.1.2 创建第一个钩子 26815.2 可用的钩子 27015.2.1 与提交相关的钩子 27015.2.2 与补丁相关的钩子 27115.2.3 与推送相关的钩子 27215.2.4 其他本地版本库的钩子 273第16章 合并项目 27416.1 旧解决方案:部分检出 27516.2 显而易见的解决方案:将代码导入项目 27616.2.1 手动复制导入子项目 27716.2.2 通过gi
  • 内容简介:
      Git是一款免费、开源的分布式版本控制系统,早由LinilusTorvalds创建,用于管理Linux内核开发,现已成为分布式版本控制的主流工具。  《Git版本控制管理(第2版)》是学习掌握Git的上佳教程,总共分为21章,其内容涵盖了如何在多种真实开发环境中使用Git;洞察Git的常用案例、初始任务和基本功能;如何在集中和分布式版本控制中使用Git;使用Git管理合并、冲突、补丁和差异;获得诸如重新定义变基(rebasing)、钩子(hook)以及处理子模块(子项目)等的高级技巧;Git如何与SVN版本库交互(包括SVN向Git的转换);通过GitHub导航、使用开源项目,并对开源项目做贡献。  《Git版本控制管理(第2版)》适合需要进行版本控制的开发团队成员阅读,对Git感兴趣的开发人员也可以从中获益。
  • 作者简介:
      JonLoeliger,是一位自由的软件开发工程师,对Linux、U-Boot和Git等开源项目颇有贡献。他在许多会议上(比如LinuxWorld)发表过Git教程相关的演讲,并为LinuxMagazine撰写了多篇Git相关的稿件。在成为自由的软件开发工程师之前,他花费了多年的时间来开发高度优化的编译器、路由器协议、Linux移植,还偶尔编写过游戏软件。Jon持有普度大学计算机科学学位。在闲暇之余,他还会在家里自行酿酒。  MatthewMcCullough,Github.com的培训副总裁,在企业软件开发领域有15年的从业经历,还是一名经常往返于世界各地的开源教育家,以及一家美国咨询公司的联合创始人。这所有的经历使得他可以与大家分享利用Git和GitHub来取得成功的相关故事。Matthew是GradleandJenkinsO’Reilly图书的特约作者,以及O’ReillyGitMasterClass系列图书的创作者。Matthew经常在NoFluffJustStuff巡回会议上发表演讲,还是DZoneGitRefCard的作者,同时还是DenverOpenSourceUsersGroups的主席。
  • 目录:
    第1章 介绍 11.1 背景 11.2 Git的诞生 21.3 先例 41.4 时间线 51.5 名字有何含义 6第2章 安装Git 72.1 使用Linux上的二进制发行版 72.1.1 Debian/Ubuntu 72.1.2 其他发行版 82.2 获取源代码 92.3 构建和安装 102.4 在Windows上安装Git 112.4.1 安装Cygwin版本的Git 122.4.2 安装独立的Git(msysGit) 13第3章 起步 163.1 Git命令行 163.2 Git使用快速入门 183.2.1 创建初始版本库 183.2.2 将文件添加到版本库中 193.2.3 配置提交作者 213.2.4 再次提交 213.2.5 查看提交 213.2.6 查看提交差异 233.2.7 版本库内文件的删除和重命名 233.2.8 创建版本库副本 243.3 配置文件 253.4 疑问 27第4章 基本的Git概念 284.1 基本概念 284.1.1 版本库 284.1.2 Git对象类型 294.1.3 索引 304.1.4 可寻址内容名称 304.1.5 Git追踪内容 314.1.6 路径名与内容 314.1.7 打包文件 324.2 对象库图示 334.3 Git在工作时的概念 354.3.1 进入.git目录 354.3.2 对象、散列和blob 364.3.3 文件和树 374.3.4 对Git使用SHA1的一点说明 384.3.5 树层次结构 404.3.6 提交 404.3.7 标签 41第5章 文件管理和索引 435.1 关于索引的一切 445.2 Git中的文件分类 445.3 使用git add 465.4 使用git commit的一些注意事项 485.4.1 使用git commit --all 485.4.2 编写提交日志消息 505.5 使用git rm 505.6 使用git mv 525.7追踪重命名注解 545.8 .gitignore文件 555.9 Git中对象模型和文件的详细视图 56第6章 提交 616.1 原子变更集 626.2 识别提交 626.2.1 绝对提交名 636.2.2 引用和符号引用 646.2.3 相对提交名 656.3 提交历史记录 676.3.1 查看旧提交 676.3.2 提交图 706.3.3 提交范围 736.4 查找提交 776.4.1 使用git bisect 786.4.2 使用git blame 826.4.3 使用Pickaxe 83第7章 分支 847.1 使用分支的原因 847.2 分支名 857.3 使用分支 867.4 创建分支 887.5 列出分支名 897.6 查看分支 897.7 检出分支 917.7.1 检出分支的一个简单例子 917.7.2 有未提交的更改时进行检出 927.7.3 合并变更到不同分支 947.7.4 创建并检出新分支 957.7.5 分离HEAD分支 967.8 删除分支 97第8章 diff 1008.1 git diff命令的格式 1018.2 简单的git diff例子 1048.3 git diff和提交范围 1088.4 路径限制的git diff 1108.5 比较SVN和Git如何产生diff 112第9章 合并 1149.1 合并的例子 1149.1.1 为合并做准备 1159.1.2 合并两个分支 1159.1.3 有冲突的合并 1179.2 处理合并冲突 1219.2.1 定位冲突的文件 1229.2.2 检查冲突 1229.2.3 Git是如何追踪冲突的 1269.2.4 结束解决冲突 1289.2.5 中止或重新启动合并 1299.3 合并策略 1309.3.1 退化合并 1329.3.2 常规合并 1349.3.3 特殊提交 1359.3.4 应用合并策略 1369.3.5 合并驱动程序 1379.4 Git怎么看待合并 1389.4.1 合并和Git的对象模型 1389.4.2 压制合并 1399.4.3 为什么不一个接一个地合并每个变更 140第10章 更改提交 14210.1 关于修改历史记录的注意事项 14310.2 使用git reset 14410.3 使用git cherry-pick 15210.4 使用git revert 15410.5 reset、revert和checkout 15410.6 修改最新提交 15510.7 变基提交 15810.7.1 使用git rebase -i 16010.7.2 变基与合并 164第11章 储藏和引用日志 17011.1 储藏 17011.2 引用日志 178第12章 远程版本库 18312.1 版本库概念 18412.1.1 裸版本库和开发版本库 18412.1.2 版本库克隆 18512.1.3 远程版本库 18612.1.4 追踪分支 18612.2 引用其他版本库 18712.2.1 引用远程版本库 18812.2.2 refspec 18912.3 使用远程版本库的示例 19112.3.1 创建权威版本库 19212.3.2 制作你自己的origin远程版本库 19312.3.3 在版本库中进行开发 19512.3.4 推送变更 19612.3.5 添加新开发人员 19712.3.6 获取版本库更新 19912.4 图解远程版本库开发周期 20312.4.1 克隆版本库 20412.4.2 交替的历史记录 20512.4.3 非快进推送 20512.4.4 获取交替历史记录 20712.4.5 合并历史记录 20812.4.6 合并冲突 20812.4.7 推送合并后的历史记录 20912.5 远程版本库配置 20912.5.1 使用git remote 21012.5.2 使用git config 21112.5.3 使用手动编辑 21212.6 使用追踪分支 21212.6.1 创建追踪分支 21212.6.2 领先和落后 21512.7 添加和删除远程分支 21612.8 裸版本库和git推送 217第13章 版本库管理 21913.1 谈谈服务器 21913.2 发布版本库 22013.2.1 带访问控制的版本库 22013.2.2 允许匿名读取访问的版本库 22113.2.3 允许匿名写入权限的版本库 22513.2.4 在GitHub上发布版本库 22513.3 有关发布版本库的建议 22713.4 版本库结构 22813.4.1 共享的版本库结构 22813.4.2 分布式版本库结构 22813.4.3 版本库结构示例 22913.5 分布式开发指南 23113.5.1 修改公共历史记录 23113.5.2 分离提交和发布的步骤 23213.5.3 没有唯一正确的历史记录 23213.6 清楚你的位置 23313.6.1 上下游工作流 23313.6.2 维护者和开发人员的角色 23413.6.3 维护者-开发人员的交互 23413.6.4 角色的两面性 23513.7 多版本库协作 23613.7.1 属于你自己的工作区 23613.7.2 从哪里开始你的版本库 23713.7.3 转换到不同的上游版本库 23813.7.4 使用多个上游版本库 23913.7.5 复刻项目 241第14章 补丁 24414.1 为什么要使用补丁 24514.2 生成补丁 24614.3 邮递补丁 25414.4 应用补丁 25614.5 坏补丁 26414.6 补丁与合并 264第15章 钩子 26515.1 安装钩子 26715.1.1 钩子示例 26715.1.2 创建第一个钩子 26815.2 可用的钩子 27015.2.1 与提交相关的钩子 27015.2.2 与补丁相关的钩子 27115.2.3 与推送相关的钩子 27215.2.4 其他本地版本库的钩子 273第16章 合并项目 27416.1 旧解决方案:部分检出 27516.2 显而易见的解决方案:将代码导入项目 27616.2.1 手动复制导入子项目 27716.2.2 通过gi
查看详情