Git学习(五)----Git工作区&暂存区&版本号库(“三巨头”)、删除文件、撤销操作
工作区:比方我的就是git1。
版本号库:工作区里有个隐藏的.git目录。这个奏是Git的版本号库
暂存区:Git版本号库里一个非常重要的部分。
以加入文件或者改动文件为例:
(1)git add就是把“工作区文件的改动”加入到“暂存区”。
(2)git commit就是把“暂存区的全部内容”提交到“当前分支”(眼下为止我们都使用的都是git自己主动为我们建的master分支,分支之后再说)
好比吃饭:
我们先拿餐具挑选食物(对文件进行操作)--->塞到嘴里。吧唧吧唧(git add。存储在暂存区)--->跨擦。咽下去了(git commit)
假设,你对文件改动了没有git add,直接commit是不会提交更新的并且会报错(毕竟嘴里没东西,咽啥啊)。
假设,对文件改动了,然后git add了,之后脑子犯抽的再次改动了文件没git add。那么仅仅会将之前add的提交(咽东西仅仅会咽嘴里的啊,你筷子上有啥没卵用)。这个时候你跳转到这个版本号就会发现第二次改动的东西不见了。
删除文件:git rm <file>
删除文件和上文git add原理十一样的:“工作区文件的操作” ---> “暂存区” ---> “当前分支”
所以。首先我们先到工作区删除文件 ---> 然后。git rm <file> ---> 最后。git commit -m"***"
删除git1下的test2.txt文件。然后在控制台输入:git status 查看
输入:git rm test2.txt
(“删除操作”加入到暂存区成功)
输入:git commit -m“delete file test2.txt”
(删除操作成功,是不是so easy。)
(๑乛◡乛๑):你会用吗?
撤销改动:
没add、没commit: 改动某个文件内容,想丢弃改动时,git checkout -- <file>。
(直接扔掉改动)
已add、没commit: 先git reset <commit id> <file>,然后git checkout -- <file>。(先从暂存区中删除,在删除文件改动)
已add、已commit:
版本号跳转
注意:git checkout -- <file> 中的“--”不要漏写了。不然就变成“切换分支”的命令了
我们首先先把删掉的文件撤销回来吧。
输入:git reset --hard fab70b (我这里commit id 仅仅写了6位,记得加上 --hard 不然看不到test2.txt文件的)
改动test2.txt 文件(没add)。
输入 git checkout -- test2.txt
改动test2.txt文件 ---> git add
然后撤销改动,输入:git reset fab70b3 test2.txt。再输入:git checkout -- test2.txt
文件删除的撤销操作是一样的,不演示了。