第1章 Git入门 1
1.1 Git概述 2
1.2 Git与其他版本控制系统的差异 3
1.3 常见问题 4
第2章 环境安装 6
2.1 在Windows操作系统中安装Git 7
2.2 在macOS操作系统中安装Git 9
2.3 在Linux操作系统中安装Git 10
2.4 图形界面工具 11
第3章 终端机/命令提示符 13
3.1 终端机及常用命令介绍 14
3.2 超简明的Vim操作介绍 17
第4章 设置Git 19
4.1 用户设置 20
4.2 可以给每个项目设置不同的作者吗 21
4.3 其他方便的设置 21
第5章 开始使用Git 24
5.1 新增、初始Repository 25
5.2 把文件交给Git管控 27
5.3 工作区、暂存区与存储库 33
5.4 查看记录 35
5.5 如何在Git中删除文件或变更文件名 39
5.6 修改Commit记录 46
5.7 追加文件到最近一次的Commit 48
5.8 新增目录 49
5.9 有些文件不想放在Git中 50
5.10 查看特定文件的Commit记录 52
5.11 这行代码是谁写的 55
5.12 不小心把文件或目录删除了 57
5.13 刚才的Commit后悔了,想要拆掉重做 60
5.14 不小心使用hard模式Reset了某个Commit,还救得回来吗 63
5.15 HEAD是什么 64
5.16 可以只Commit一个文件的部分内容吗 65
5.17 那个长得很像乱码的SHA-1值是怎样算出来的 68
5.18.git目录中有什么?Part 1 70
5.19.git目录中有什么?Part 2 85
第6章 使用分支 92
6.1 使用分支的原因 93
6.2 开始使用分支 93
6.3 对分支的误解 100
6.4 合并分支 105
6.5 为什么我的分支没有“小耳朵” 112
6.6 合并过的分支要保留吗 115
6.7 不小心把还没合并的分支删除了,救得回来吗 115
6.8 另一种合并方式(使用Rebase) 119
6.9 合并发生冲突了怎么办 126
6.10 为什么都说在Git中开分支“很便宜” 131
6.11 Git如何知道现在是在哪一个分支 133
6.12 HEAD也有缩写 134
6.13 可以从过去的某个Commit再创建一个新的分支吗 136
第7章 修改历史记录 139
7.1 修改历史信息 140
7.2 把多个Commit合并为一个Commit 144
7.3 把一个Commit拆解成多个Commit 149
7.4 想要在某些Commit之间再加新的Commit 153
7.5 想要删除某几个Commit或调整Commit的顺序 155
7.6 Reset、Revert与Rebase指令有什么区别 159
第8章 标签 163
8.1 使用标签 164
8.2 标签与分支有什么区别 168
第9章 其他常见的情况及一些冷知识 170
9.1 手边的工作做到一半,临时要切换到别的任务 171
9.2 不小心把账号密码放在Git中了,想把它删掉该怎么办 174
9.3 怎样把文件真正地从Git中移除 178
9.4 你知道Git有资源回收机制吗 181
9.5 断头(detached HEAD)是怎么一回事 186
第10章 远端共同协作——使用GitHub 191
10.1 GitHub概述 192
10.2 将内容Push到GitHub上 193
10.3 Pull下载更新 199
10.4 为什么有时候推不上去 203
10.5 从服务器上取得Repository 205
10.6 Clone与Pull指令的区别 207
10.7 与其他开发者的互动——使用PullRequest(PR) 207
10.8 怎样跟上当初fork的项目的进度 213
10.9 怎么删除远端的分支 215
10.10 听说git push-f指令很可怕,什么情况下可以使用呢 217
10.11 使用GitHub免费制作个人网站 219
10.12 一定要有GitHub才能得到他人更新的文件吗 222
第11章 使用Git Flow 224
Git Flow是什么?为什么需要它 225