上集回顾
我们用一套操作来复习上次的学习内容:
- git status: 查看当前git状态
- vi readme.txt:修改仓库文件
- git diff readme.txt:查看文件差异
- git status
- git add readme.txt:添加修改文件到暂存区
- git diff readme.txt:添加到暂存区的文件就diff不出来区别了
- git status
- git commit -m “The second modified”:添加修改文件到分支上,-m参数后面可以有空格也可以没有
- git status
版本选择
git log:查看历史记录
git reflog:查看历史改动
git reset --hard HEAD^/版本号
下面使用git reset --hard HEAD^
命令让文件返回一个存档:
下面使用git reset --hard 版本号
来返回任意版本的状态:
注意,log里面是文件的修改路线,如果返回前面的版本,那么着其中的修改记录都会消失。但是reflog记录的是所有的操作,而且有所有步骤的头文件版本号,可以根据版本号和操作内容方便的了解每次操作的内容和返回到指定的版本。
工作区和暂存区
这篇文章解释的挺详细的:
https://blog.csdn.net/weixin_41282486/article/details/79734793
下面我们亲自验证一下:
三个命令:
git diff:比较的是工作区和暂存区的差别
git diff --cached:比较的是暂存区和版本库的差别
git diff HEAD: 可以查看工作区和版本库的差别
下面修改readme.txt
,这时候工作区和版本库、暂存区有不同,而版本库和暂存区无不同:
把修改add到暂存区后,工作区和暂存区一致了,版本库和它们不同:
然后把变化commit到版本库中,大家都一样了:
其实git的版本库就在隐藏文件夹.git
里,里面的文件目录包括了暂存区和分支,我们平常工作的目录就是工作目录,用add就添加到这个隐藏文件里的暂存区中,commit就添加到分支文件里。这里就了解到这里,具体细节还要在长期的使用过程中来发现。
学习感悟:这一节了解了git的重要概念,对git的使用更进一步。