一、深入学习Git必须熟悉两个概念
(1)【四个区】Git本地有三个区,远程仓库也可以看出成一个区域
工作区、暂存区、本地仓库、远程仓库。
通过四句话来充分理解这三个区
- 第一句话:你创建的一个文件夹,并且将它初始化成了一个Git管理的仓库(或者你从远程克隆下来了一个仓库)那么这个文件夹就是你本地仓库的工作区。
- 第二句话:工作区中的文件或者文件夹如果发生了“变动”,需要先将“变动”添加到暂存区才能将这种“变动”提交到本地仓库,也就是上图中箭头的方向,我叫它正方向操作。(变动可以是新增、删除、修改等等)
- 第三句话:上图中的箭头也可以反过来,我叫它逆方向操作,反过来的这种行为就是回退版本,是一种版本控制行为。
- 第四句话:回退版本的意思就是将仓库里的内容回退到暂存区和工作区,如果commit提交到了仓库,那么仓库就发生了一次状态变化,仓库中的状态就是版本。(版本 == 仓库状态,上一个版本 == 提交前的仓库状态, 当前版本 == 当前仓库的状态)
(2)【文件的四种状态】
- 未跟踪:如果一个文件放在工作区里面,但他没有被Git管理,那么就称这个文件未被Git跟踪故叫做未跟踪。
- 未修改:如果一个文件只是放在工作区里,没有任何修改,那么就称这个文件为未修改状态。
- 已修改:如果一个文件工作区里被修改了,那么就称这个文件为已修改状态。
- 已暂存:如果一个工作区里的文件被git add命令添加到了暂存区,那么就称这个文件为已暂存状态。
二、深入学习Git必须掌握逆方向操作
(1)复习一下正方向操作
# 将工作区里的文件添加到暂存区(文件被Git跟踪,跟踪=管理)
git add .
# 将暂存区里的文件提交到本地仓库
git commit -m '说明'
# 将本地仓库里的文件推送到远程仓库
git push
其实如果你的操作是删除文件,或者修改文件,上述的注释会让你困惑,所以我更愿意用下面这种注释。
# 将工作区里的文件的“变动”添加到暂存区
# 将暂存区里的文件的“变动”提交到本地仓库
# 将本地仓库里的文件的“变动”推送到远程仓库
例如:如果你的变动是删除,那么意思就是将你在工作区删除文件这种操作行为添加到暂存区,也就是让暂存区也进行删除文件的操作。
(2)逆方向操作的学习
# 远程仓库中的改动拉取到本地仓库
git pull
# 将本地仓库里的文件退回暂存区和工作区
git reset [版本号]
# 将暂存区的文件删除(如果文件之前提交过,那么删了暂存区和工作区里的,但本地仓库里还有)
git rm filename
# 将暂存区的文件退回工作区(也就是让文件状态变成未暂存)
git restore --staged filename
需要说明git rm a.txt会把暂存区和工作区的a.txt文件都删掉。而git restore --staged a.txt只会删除暂存区里面的a.txt
三、深入学习Git必须掌握分支
这一块儿的内容后续更新哟(^o^)