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