01 Git基本概念
分布式版本控制系统
特点:基于服务器、客户端的运行模式
- 服务器保存文件的所有更新版本
- 客户端是服务器的完整备份,并不是只保留文件的最新版本
优点:
- 联网运行,支持多人协作开发
- 客户端断网后支持离线本地提交版本更新
- 服务器故障或损坏后,可使用任何一个客户端的备份进行恢复
Git 是一个开源的分布式版本控制系统
Git 中的三个区域:
使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。
Git 中的三种状态:
已修改 modified:表示修改了文件,但还没将修改的结果放到暂存区
已暂存 staged:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中
已提交 committed:表示文件已经安全地保存在本地的 Git 仓库中
02 安装并配置Git
配置用户信息:
git config --global user.name "Bobi"
git config --global user.email "88888888@qq.com"
检查配置信息:
查看所有的全局配置项
git config --list --global
查看指定的全局配置项:
git config user.name
git config user.email
获取帮助信息 :
git --help config
git config -h
03 Git的基本操作
在现有目录中初始化仓库 :
- 在项目目录中,通过鼠标右键打开“Git Bash”
- 执行 git init 命令将当前的目录转化为 Git 仓库
检查文件的状态:
git status
git status -s (以精简的方式查看)
git status --short
?? 表示文件未被跟踪
A 表示文件已暂存
M 表示修改过的、未暂存的文件
M 表示已修改、已暂存
工作区中文件的 4 种状态 :
跟踪新文件、暂存已修改的文件:
git add index.html
git add 命令还可以把有冲突的文件标记为已解决状态
提交更新:
git commit -m "对提交的内容做描述"
撤销对文件的修改:
git checkout -- index.html
此操作无法恢复,危险性较高,谨慎操作!!
向暂存区中一次性添加多个文件:
git add .
取消暂存的文件:
git reset HEAD 要移除的文件名
跳过使用暂存区域直接提交:
git committed -a -m "对提交的内容做描述"
移除文件 :
从 Git 仓库和工作区中同时移除对应的文件 :
git rm -f index.html
只从 Git 仓库中移除指定的文件,但保留工作区中对应的文件
git rm --cached index.html
忽略文件:
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 在这种情况下,我们可以创建一个名为 .gitignore 的配置文件,列出要忽略的文件的匹配模式。
文件 .gitignore 的格式规范如下:
- 以 # 开头的是注释
- 以 / 结尾的是目录
- 以 / 开头防止递归
- 以 ! 开头表示取反
- 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)
glob 模式
glob 模式是指简化了的正则表达式:
- 星号 * 匹配零个或多个任意字符
- [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个 a 或匹配一个 b 或匹配一个 c)
- 问号 ? 只匹配一个任意字符
- 在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)
- 两个星号 ** 表示匹配任意中间目录(比如 a/**/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等)
.gitignore 文件的例子
查看提交历史:
ps. 使用 git log 之后可以用"Q"来离开