一、工作区和暂存区
1.在电脑看到的目录就是一个工作区,比如上篇提到learngit文件夹就是一个工作区
2.版本库
目录 .git 这个不算工作区而是Git的版本库。
Git版本库里的index暂存区,还有Git自动创建第一个分支master,以及master的一个指针叫HEAD
当我们把文件往Git版本库里添加的时候,是分两步执行:
第一步git add 把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。
二、管理修改
第一次修改-> git add ->第二次修改 ->git commit
Git 管理的是修改,当你用 git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是在工作区的第二次修改没有放入暂存区,所以, git commit 只负责把暂存区的修改提交了
第一次的被提交,第二次的修改不会被提交
提交后,用 git diff HEAD -- readme.txt 命令可以查看工作区和版本库里边最新版本的区别:
第二次的修改确实没有提交
那怎么提交第二次修改呢
1.可以继续git add 再 git commit
2.可以别着急提交第一次修改 先git add 第二次修改,再git commit ,相当于把两次修改合并后一块提交了
三、撤销修改
场景1:当你改乱了工作区的某个文件夹的内容,想直接丢弃工作区的修改是,用命令 git checkout -- file。
场景2:当你不但乱改了工作区的内容,还添加到了暂存区是,想丢弃修改,分两步,第一步用命令 git reset HEAC file ,就回到了场景1,第二步操作按场景1操作。
场景3:已经提交了不适合的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程。
四、删除文件
1.要从版本库中删除该文件, 用命令git rm 删掉。并且 git commit
2.如果是误删文件 可以把误删的文件恢复到最新版本 命令 git checkout -- file 无论工作区是修改还是删除,都可以“一键还原”。 注意只能恢复文件的最新版本,你会丢失最近一次提交后你修改的内容