第1章 Git概述
Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目
1.1 版本控制
- 集中化版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新

- 像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。分布式版本控制系统解决了集中式版本控制系统的缺陷:
- 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
- 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
1.2 Git 工作机制
1.3 Git 和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库
- 局域网,GitLab
- 互联网,GitHub,Gitee
1.4 Git 安装
- Git 官网
第2章 Git常用命令
| 命令格式 | 作用 | | —- | —- | | git config —global user.name <用户名> | 设置用户签名 | | git config —global user.email <邮箱> | 设置用户签名 | | git init | 初始化本地库 | | git status | 查看本地库状态 | | git add <文件名> | 添加到暂存区 | | git commit -m “日志信息” <文件名> | 提交到本地库 | | git reflog | 查看版本历史记录 | | git reset —hard <版本号> | 版本穿梭 |
2.1 设置用户签名
基本语法
git config --global user.name <用户名>git config --global user.email <邮箱>
案例实操
:::tips
- 签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看 到,以此确认本次提交是谁做的。Git 首次安装必须设置一下用户签名,否则无法提交代码
这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。设置用户签名的邮箱甚至可以是虚假的 :::
2.2 初始化本地库
基本命令
git init
案例实操

- 结果查看
2.3 查看本地库状态
基本语法
git status
案例实操
- 首次查看(工作区没有任何文件)

- 新增文件(hello.txt)

- 再次查看(检测到未追踪的文件)
2.4 添加暂存区
基本语法
git add <文件名>
案例实操
- 添加文件到暂存区
:::tips
CRLF:即 carriage return line feed,”\r\n”, windows系统环境下的换行方式
LF:即 line feed,”\n”,Linux系统环境下的换行方式
:::
- 查看状态(检测到暂存区有新文件)
:::tips 可以用命令 “git rm —cached <文件名>” 从暂存区删除该文件,但工作区的文件不会被删除 :::
2.5 提交本地库
基本语法
git commit -m "日志信息" <文件名>
案例实操
- 将暂存区的文件提交到本地库

- 查看状态(没有文件需要提交)
2.6 修改文件(hello.txt)
- 修改文件

- 查看状态(检测到工作区有文件被修改)

- 将修改的文件再次添加缓存区并查看状态

- 将修改的文件再次提交本地库
:::tips
Git 按行维护版本信息,更改一行的内容需要先将原行内容删除,再插入新行内容
:::
2.7 历史版本
查看历史版本
基本语法
git reflog # 查看版本信息git log # 查看详细版本信息
案例实操

版本穿梭
基本语法
git reset [--mixed | --soft | --hard] <版本号> # --mixed为默认
案例实操
- 查看当前版本和目标版本号 :::info
由上图可知,当前 HEAD 指向 master 分支的第2个版本
第1个版本号是 e11273c :::
- 执行 "git reset e11273c" 后查看日志(日志也记录了版本穿梭的操作)

- 查看状态(工作区出现尚未暂存的文件)

