Git 安装及基本操作
1 Git 概述
1.1 什么是 Git?
Git 是一个开源的分布式版本控制系统,是目前最先进、最流行的版本控制系统。可以快速高效的处理从很小到非常大的项目版本管理。
特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性。
1.2 Git 的特性
- 直接记录快照,而非差异比较。
Git 快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
- 近乎所有操作都是本地执行。
1.3 Git 中的三个区域
使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。
1.4 Git 中的三种状态
- 已修改 modified:表示修改了文件,但还没有将修改的结果放到暂存区。
- 已暂存 staged:表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中。
- 已提交 committed:表示文件已经安全地保存再本地的 Git 仓库中。
1.5 Git 基本工作流程
- 在工作区中修改文件。
- 将你想要下次提交的更改进行暂存。
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 仓库。
2 Git 安装
① 官网下载地址Git - Downloads
官网下载慢的,可以点击registry.npmmirror.com进入,选择自己需要下载的版本。
② 这里我下载的是 Git-2.38.1-64-bit.exe 文件,下载完毕直接双击打开,一路点击 next 即可(安装时注意安装路径)。
③ 配置用户信息
通过 Git 命令设置自己的用户名和邮箱地址,鼠标右击桌面选择 ‘ Git Bash Here ’选项,打开 Git 命令框,输入如下命令。
git config --global user.name "用户名"
git config --global user.email "邮箱地址"
注意:该命令只需执行一次,即可永久生效。
到此为止 Git 安装配置成功。
④ 检查配置信息
- 通过全局配置文件查看
打开 C 盘 -> Users -> 自己的用户名文件夹 -> .gitconfig 文件。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
- 通过命令查看
// 查看所有的全局配置项
git config --list --global
// 查看指定的全局配置项
git config user.name
git config user.email
⑤ 获取帮助信息
可以使用如下命令,无需联网就可以在浏览器中打开帮助手册。
git help config
也可以使用 -h 选项直接在终端中获得更简明的 “help” 输出。
git config -h
3 Git 的基本操作
3.1 获取 Git 仓库的两种方式
- 将尚未进行版本控制的本地目录转换为 Git 仓库。
- 从其它服务器克隆一个已存在的 Git 仓库。
3.2 在现有目录中初始化仓库
- 在项目目录中,鼠标右键打开 “Git Bash Here”。
- 执行 git init 命令将当前的目录转化为 Git 仓库。
git init 命令会创建一个名为 .git 的隐藏目录,这个 .git 就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分,如果删除了该文件,那么这个 Git 仓库也就没了。
如果找不到,按下图操作。
3.3 工作区中的 4 中状态
分为两大类:
- 未被 Git 管理
- 未跟踪 untracked:不被 Git 所管理的文件。
- 已被 Git 管理
- 未修改 unmodified:工作区中文件的内容和 Git 仓库中的文件的内容保持一致。
- 已修改 modified:工作区中文件的内容和 Git 仓库中文件的内容不一致。
- 已暂存 staged:工作区中被修改的文件已被放到暂存区,准备将修改后的文件保存到 Git 仓库中。
Git 操作的终极结果:让工作区中的文件都处于 “未修改” 的状态。
3.4 检查文件的状态
通过以下命令来查看文件处于什么状态:
git status
3.5 以精简的方式检查文件状态
git status -s
git status --short
// -s 等价于 --short
3.6 跟踪新文件
使用 git add 开始跟踪一个文件。
git add 所要跟踪的文件
3.7 提交更新
现在暂存区中有一个 index.html 文件等待被提交到 Git 仓库。可以执行如下命令进行提交。
git commit -m "一个新的html文件"
// -m 后边是对提交内容进一步描述
3.8 对已提交的文件进行修改
如果我们对以提交更新的文件进行修改,再查看状态,就会看到如下命令。
3.9 暂存已修改的文件
需要再次使用 git add 命令。
git add 命令有三个功效:
- 可以跟踪新文件。
- 把已跟踪的、且已修改的文件放到暂存区。
- 把有冲突的文件标记为已解决状态。
3.10 提交已暂存的文件
再次运行如下命令,即可将暂存区中的记录,提交到 Git 仓库中。
git commit -m "初始化了这个新的html文件"
3.11 撤销对文件的修改
把工作区中对应文件的修改,还原成 Git 仓库中所保存的版本,通过如下命令。
git checkout -- 要还原的文件
注意:所有修改会丢失,无法恢复!
比如我们再 index.html 文件中添加一个标签。
然后再执行还原命令。
再打开 index.html 文件,可以看到已被还原。
3.12 向暂存区中一次性添加多个文件
可以将所有的新增和修改过的文件加入暂存区,命令如下。
git add .
我们先添加几个文件,如下。
然后执行命令 git add .
3.13 取消暂存的文件
git reset HEAD 要移除的文件名称
git reset HEAD . // . 表示移除所有文件
3.14 跳过使用暂存区
Git 标准工作流程是 工作区 -> 暂存区 -> Git 仓库,我们可以简化为 工作区 -> Git 仓库。
提交的时候使用如下命令:
git commit -a -m "提交的信息"
3.15 移出文件
有两种方式:
// 1.从 Git 仓库和工作区中同时移除文件
git rm -f 所要移除的文件
// 2.只从 Git 仓库中移除,保留工作区中的文件
git rm --cached 所要移除的文件
第一种方式:
第二种方式:
这个时候我们再提交一次,就能看到被标记的已经从 Git 仓库种移除了,只剩下了未被 Git 跟踪的 index.css 文件。
3.16 忽略文件
我们平常会有一些无需纳入 Git 管理的文件,也不希望它出现在未跟踪文件列表。可以创建一个名为 .gitignore 的配置文件,列出要忽略的文件的匹配模式。
文件 .gitignore 的格式规范如下:
- 以
#
开头的是注释。 - 以
/
结尾的是目录。 - 以
/
开头防止递归。 - 以
!
开头表示取反。 - 可以使用 glob 模式进行文件和文件夹的匹配(glob 指简化了的正则表达式)。
3.17 glob 模式
glob 模式就是简化了的正则表达式。
*
匹配0个或多个任意字符。[abc]
匹配一个列在方括号中的字符。?
只匹配一个字符。[0-9]
匹配0-9之间的字符。**
表示匹配任意中间目录。如 a/**/b。
3.18 创建并使用 .gitignore
直接在项目中新建一个文本文档,然后修改为 .gitignore 即可。要把扩展名一并选中修改。
然后打开文件,添加忽略信息。
接着打开 Git 进行测试,可以看到只有 .gitignore 文件未被跟踪。
3.19 查看提交历史
// 按时间先后顺序列出所有提交历史,最近的提交排在最上面
git log
// 只展示最新的 n 条提交历史,n 按需填写数字
git log -n
// 在一行上展示最近两条提交历史
git log -n --pretty=oneline
// 在一行上展示最近两条提交历史,并自定义格式显示
// %h:提交简写的哈希值 %an:作者的名字 %ar:作者修订日期 %s:提交说明
git log -n --pretty=format:"%h | %an | %ar | %s"
3.20 回退到指定的版本
// 1.在一行上展示所有历史记录
git log --pretty=oneline
// 2.使用 git reset --hard 命令,根据指定的提交 ID 回退到指定的版本
git reset --hard ID
// 1.在旧版本中查看所有历史记录
git reflog --pretty=oneline
// 2.使用 git reset --hard 命令,根据指定的提交 ID 回退到指定的版本
git reset --hard ID
4 配置 SSH 连接 Git
使用 SSH 可以在连接远程仓库时无需输入密码并且可以实现对 github 的流畅访问。
鼠标右击桌面选择 ‘ Git Bash Here ’选项,打开 Git 命令框,以下操作都将在 Git 命令框中进行。
4.1 确认是否有 ssh 密钥
ls -al ~/.ssh
如果出现如下命令,则表示已有密钥。可以选择继续使用此密钥,当然也可以生成新的密钥。
4.2 生成 ssh 密钥
ssh-keygen -t rsa -b 4096 -C "可以填写自己的邮箱"
输入完毕后回车,会多次出现提示信息,直接回车即可,直到出现如下信息则表示密钥生成成功。
4.3 查看密钥内容
cat ~/.ssh/id_rsa.pub
复制密钥内容,接下来会用到。
4.4 在 gitee 中为仓库添加公钥
进入想要添加公钥的仓库,在管理选项中找到部署公钥管理,点击“添加公钥”。
将上面步骤所复制的 ssh 密钥复制到下图所示区域,点击“添加”即可。
4.5 在 gitee 中为账户添加公钥
选择头像下拉框中的“设置”,在左侧选项中找到“SSH公钥”选项,添加步骤和添加仓库公钥一致。