展开全部

主编推荐语

本书教授Git实践、基础功能及高级技巧,兼容SVN和GitHub操作。

内容简介

本书是学习掌握Git的最佳教程,总共分为21章,其内容涵盖了如何在多种真实开发环境中使用Git;洞察Git的常用案例、初始任务和基本功能;如何在集中和分布式版本控制中使用Git;使用Git管理合并、冲突、补丁和差异;获得诸如重新定义变基、钩子以及处理子模块(子项目)等的高级技巧;Git如何与SVN版本库交互(包括SVN向Git的转换);通过GitHub导航、使用开源项目,并对开源项目做贡献。

目录

  • 版权信息
  • 版权声明
  • 内容提要
  • O'Reilly Media,Inc.介绍
  • 关于作者
  • 封面介绍
  • 译者序
  • 前言
  • 第1章 介绍
  • 1.1 背景
  • 1.2 Git的诞生
  • 1.3 先例
  • 1.4 时间线
  • 1.5 名字有何含义
  • 第2章 安装Git
  • 2.1 使用Linux上的二进制发行版
  • 2.1.1 Debian/Ubuntu
  • 2.1.2 其他发行版
  • 2.2 获取源代码
  • 2.3 构建和安装
  • 2.4 在Windows上安装Git
  • 2.4.1 安装Cygwin版本的Git
  • 2.4.2 安装独立的Git(msysGit)
  • 第3章 起步
  • 3.1 Git命令行
  • 3.2 Git使用快速入门
  • 3.2.1 创建初始版本库
  • 3.2.2 将文件添加到版本库中
  • 3.2.3 配置提交作者
  • 3.2.4 再次提交
  • 3.2.5 查看提交
  • 3.2.6 查看提交差异
  • 3.2.7 版本库内文件的删除和重命名
  • 3.2.8 创建版本库副本
  • 3.3 配置文件
  • 配置别名
  • 3.4 疑问
  • 第4章 基本的Git概念
  • 4.1 基本概念
  • 4.1.1 版本库
  • 4.1.2 Git对象类型
  • 4.1.3 索引
  • 4.1.4 可寻址内容名称
  • 4.1.5 Git追踪内容
  • 4.1.6 路径名与内容
  • 4.1.7 打包文件
  • 4.2 对象库图示
  • 4.3 Git在工作时的概念
  • 4.3.1 进入.git目录
  • 4.3.2 对象、散列和blob
  • 4.3.3 文件和树
  • 4.3.4 对Git使用SHA1的一点说明
  • 4.3.5 树层次结构
  • 4.3.6 提交
  • 4.3.7 标签
  • 第5章 文件管理和索引
  • 5.1 关于索引的一切
  • 5.2 Git中的文件分类
  • 5.3 使用git add
  • 5.4 使用git commit的一些注意事项
  • 5.4.1 使用git commit --all
  • 5.4.2 编写提交日志消息
  • 5.5 使用git rm
  • 5.6 使用git mv
  • 5.7 追踪重命名注解
  • 5.8 .gitignore文件
  • 5.9 Git中对象模型和文件的详细视图
  • 第6章 提交
  • 6.1 原子变更集
  • 6.2 识别提交
  • 6.2.1 绝对提交名
  • 6.2.2 引用和符号引用
  • 6.2.3 相对提交名
  • 6.3 提交历史记录
  • 6.3.1 查看旧提交
  • 6.3.2 提交图
  • 6.3.3 提交范围
  • 6.4 查找提交
  • 6.4.1 使用git bisect
  • 6.4.2 使用git blame
  • 6.4.3 使用Pickaxe
  • 第7章 分支
  • 7.1 使用分支的原因
  • 7.2 分支名
  • 在分支命名中可以做和不能做的
  • 7.3 使用分支
  • 7.4 创建分支
  • 7.5 列出分支名
  • 7.6 查看分支
  • 7.7 检出分支
  • 7.7.1 检出分支的一个简单例子
  • 7.7.2 有未提交的更改时进行检出
  • 7.7.3 合并变更到不同分支
  • 7.7.4 创建并检出新分支
  • 7.7.5 分离HEAD分支
  • 7.8 删除分支
  • 第8章 diff
  • 8.1 git diff命令的格式
  • 8.2 简单的git diff例子
  • 8.3 git diff和提交范围
  • 8.4 路径限制的git diff
  • 8.5 比较SVN和Git如何产生diff
  • 第9章 合并
  • 9.1 合并的例子
  • 9.1.1 为合并做准备
  • 9.1.2 合并两个分支
  • 9.1.3 有冲突的合并
  • 9.2 处理合并冲突
  • 9.2.1 定位冲突的文件
  • 9.2.2 检查冲突
  • 9.2.3 Git是如何追踪冲突的
  • 9.2.4 结束解决冲突
  • 9.2.5 中止或重新启动合并
  • 9.3 合并策略
  • 9.3.1 退化合并
  • 9.3.2 常规合并
  • 9.3.3 特殊提交
  • 9.3.4 应用合并策略
  • 9.3.5 合并驱动程序
  • 9.4 Git怎么看待合并
  • 9.4.1 合并和Git的对象模型
  • 9.4.2 压制合并
  • 9.4.3 为什么不一个接一个地合并每个变更
  • 第10章 更改提交
  • 10.1 关于修改历史记录的注意事项
  • 10.2 使用git reset
  • 10.3 使用git cherry-pick
  • 10.4 使用git revert
  • 10.5 reset、revert和checkout
  • 10.6 修改最新提交
  • 10.7 变基提交
  • 10.7.1 使用git rebase -i
  • 10.7.2 变基与合并
  • 第11章 储藏和引用日志
  • 11.1 储藏
  • 11.2 引用日志
  • 第12章 远程版本库
  • 12.1 版本库概念
  • 12.1.1 裸版本库和开发版本库
  • 12.1.2 版本库克隆
  • 12.1.3 远程版本库
  • 12.1.4 追踪分支
  • 12.2 引用其他版本库
  • 12.2.1 引用远程版本库
  • 12.2.2 refspec
  • 12.3 使用远程版本库的示例
  • 12.3.1 创建权威版本库
  • 12.3.2 制作你自己的origin远程版本库
  • 12.3.3 在版本库中进行开发
  • 12.3.4 推送变更
  • 12.3.5 添加新开发人员
  • 12.3.6 获取版本库更新
  • 12.4 图解远程版本库开发周期
  • 12.4.1 克隆版本库
  • 12.4.2 交替的历史记录
  • 12.4.3 非快进推送
  • 12.4.4 获取交替历史记录
  • 12.4.5 合并历史记录
  • 12.4.6 合并冲突
  • 12.4.7 推送合并后的历史记录
  • 12.5 远程版本库配置
  • 12.5.1 使用git remote
  • 12.5.2 使用git config
  • 12.5.3 使用手动编辑
  • 12.6 使用追踪分支
  • 12.6.1 创建追踪分支
  • 12.6.2 领先和落后
  • 12.7 添加和删除远程分支
  • 12.8 裸版本库和git推送
  • 第13章 版本库管理
  • 13.1 谈谈服务器
  • 13.2 发布版本库
  • 13.2.1 带访问控制的版本库
  • 13.2.2 允许匿名读取访问的版本库
  • 13.2.3 允许匿名写入权限的版本库
  • 13.2.4 在GitHub上发布版本库
  • 13.3 有关发布版本库的建议
  • 13.4 版本库结构
  • 13.4.1 共享的版本库结构
  • 13.4.2 分布式版本库结构
  • 13.4.3 版本库结构示例
  • 13.5 分布式开发指南
  • 13.5.1 修改公共历史记录
  • 13.5.2 分离提交和发布的步骤
  • 13.5.3 没有唯一正确的历史记录
  • 13.6 清楚你的位置
  • 13.6.1 上下游工作流
  • 13.6.2 维护者和开发人员的角色
  • 13.6.3 维护者-开发人员的交互
  • 13.6.4 角色的两面性
  • 13.7 多版本库协作
  • 13.7.1 属于你自己的工作区
  • 13.7.2 从哪里开始你的版本库
  • 13.7.3 转换到不同的上游版本库
  • 13.7.4 使用多个上游版本库
  • 13.7.5 复刻项目
  • 第14章 补丁
  • 14.1 为什么要使用补丁
  • 14.2 生成补丁
  • 补丁和拓扑排序
  • 14.3 邮递补丁
  • 14.4 应用补丁
  • 14.5 坏补丁
  • 14.6 补丁与合并
  • 第15章 钩子
  • 15.1 安装钩子
  • 15.1.1 钩子示例
  • 15.1.2 创建第一个钩子
  • 15.2 可用的钩子
  • 15.2.1 与提交相关的钩子
  • 15.2.2 与补丁相关的钩子
  • 15.2.3 与推送相关的钩子
  • 15.2.4 其他本地版本库的钩子
  • 第16章 合并项目
  • 16.1 旧解决方案:部分检出
  • 16.2 显而易见的解决方案:将代码导入项目
  • 16.2.1 手动复制导入子项目
  • 16.2.2 通过git pull -s subtree导入子项目
  • 16.2.3 将更改提交到上游
  • 16.3 自动化解决方案:使用自定义脚本检出子项目
  • 16.4 原生解决方案:gitlink和git submodule
  • 16.4.1 gitlink
  • 16.4.2 git submodule命令
  • 第17章 子模块最佳实践
  • 17.1 子模块命令
  • 17.2 为什么要使用子模块
  • 17.3 子模块准备
  • 17.4 为什么是只读的
  • 17.5 为什么不用只读的
  • 17.6 检查子模块提交的散列
  • 17.7 凭据重用
  • 17.8 用例
  • 17.9 版本库的多级嵌套
  • 17.10 子模块的未来
  • 第18章 结合SVN版本库使用Git
  • 18.1 例子:对单一分支的浅克隆
  • 18.1.1 在Git中进行修改
  • 18.1.2 在提交前进行抓取操作
  • 18.1.3 通过git svn rebase提交
  • 18.2 在git svn中使用推送、拉取、分支和合并
  • 18.2.1 直接使用提交ID
  • 18.2.2 克隆所有分支
  • 18.2.3 分享版本库
  • 18.2.4 合并回SVN
  • 18.3 在和SVN一起使用时的一些注意事项
  • 18.3.1 svn:ignore与.gitignore
  • 18.3.2 重建git-svn的缓存
  • 第19章 高级操作
  • 19.1 使用git filter-branch
  • 19.1.1 使用git filter-branch的例子
  • 19.1.2 filter-branch的诱惑
  • 19.2 我如何学会喜欢上git rev-list
  • 19.2.1 基于日期的检出
  • 19.2.2 获取文件的旧版本
  • 19.3 数据块的交互式暂存
  • 19.4 恢复遗失的提交
  • 19.4.1 git fsck命令
  • 19.4.2 重新连接遗失的提交
  • 第20章 提示、技巧和技术
  • 20.1 对脏的工作目录进行交互式变基
  • 20.2 删除剩余的编辑器文件
  • 20.3 垃圾回收
  • 20.4 拆分版本库
  • 20.5 恢复提交的小贴士
  • 20.6 转换Subversion的技巧
  • 20.6.1 普适建议
  • 20.6.2 删除SVN导入后的trunk
  • 20.6.3 删除SVN提交ID
  • 20.7 操作来自两个版本库的分支
  • 20.8 从上游变基中恢复
  • 20.9 定制Git命令
  • 20.10 快速查看变更
  • 20.11 清理
  • 20.12 使用git-grep来搜索版本库
  • 20.13 更新和删除ref
  • 20.14 跟踪移动的文件
  • 20.15 保留但不追踪文件
  • 20.16 你来过这里吗
  • 第21章 Git和GitHub
  • 21.1 为开源代码提供版本库
  • 21.2 创建GitHub的版本库
  • 21.3 开源代码的社会化编程
  • 21.4 关注者
  • 21.5 新闻源
  • 21.6 复刻
  • 21.7 创建合并请求
  • 21.8 管理合并请求
  • 21.9 通知
  • 21.10 查找用户、项目和代码
  • 21.11 维基
  • 21.12 GitHub页面(用于网站的Git)
  • 21.13 页内代码编辑器
  • 21.14 对接SVN
  • 21.15 标签自动归档
  • 21.16 组织
  • 21.17 REST风格的API
  • 21.18 闭源的社会化编程
  • 21.19 最终开放源代码
  • 21.20 开发模型
  • 21.21 GitHub企业版
  • 21.22 关于GitHub的总结
  • 欢迎来到异步社区!
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

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