2.2.7 跳过使用暂存区域 . . . . . . . . . . . . . . . . . . . . . . 21
2.2.8 移除文件 . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.9 移动文件 . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3 查看提交历史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.1 限制输出长度 . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 使用图形化工具查阅提交历史 . . . . . . . . . . . . . . . . . 29
2.4 撤消操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.4.1 修改最后一次提交 . . . . . . . . . . . . . . . . . . . . . . 29
2.4.2 取消已经暂存的文件 . . . . . . . . . . . . . . . . . . . . . 30
2.4.3 取消对文件的修改 . . . . . . . . . . . . . . . . . . . . . . 31
2.5 远程仓库的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.1 查看当前的远程库 . . . . . . . . . . . . . . . . . . . . . . 32
2.5.2 添加远程仓库 . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.3 从远程仓库抓取数据 . . . . . . . . . . . . . . . . . . . . . 33
2.5.4 推送数据到远程仓库 . . . . . . . . . . . . . . . . . . . . . 33
2.5.5 查看远程仓库信息 . . . . . . . . . . . . . . . . . . . . . . 34
2.5.6 远程仓库的删除和重命名 . . . . . . . . . . . . . . . . . . . 35
2.6 打标签 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.1 列显已有的标签 . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2 新建标签 . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.3 含附注的标签 . . . . . . . . . . . . . . . . . . . . . . . . 36
2.6.4 签署标签 . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.5 轻量级标签 . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.6 验证标签 . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.7 后期加注标签 . . . . . . . . . . . . . . . . . . . . . . . . 38
2.6.8 分享标签 . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.7 技巧和窍门 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7.1 自动完成 . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7.2 Git 命令别名 . . . . . . . . . . . . . . . . . . . . . . . . 41
2.8 小结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3 Git 分支 43
3.1 何谓分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 基本的分支与合并 . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.1 基本分支 . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.2.2 基本合并 . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.3 冲突的合并 . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 分支管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4 分支式工作流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.1 长期分支 . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.4.2 特性分支 . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.5 远程分支 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.5.1 推送 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5.2 跟踪分支 . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.5.3 删除远程分支 . . . . . . . . . . . . . . . . . . . . . . . . 62
3.6 衍合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
iv