git checkout -- test.txt的作用: 丢弃掉相对于暂存区中最后一次添加的文件内容所做的变更。
演示:
第二个,注意和git reset HEAD test.txt的区别:
将之前添加到暂存区(stage)的内容从暂存区移除到工作区
演示:
之前我们知道git branch可以切换到历史提交。而git reset HEAD commid-id可以切换到某个历史状态,然而git checkout也可以切换到某个历史状态,但是git checkout 切换到的是一个游离的状态,我们必须要提交或者stash,不然会报错。
下面开始演示,先做准备工作: 创建test.txt并修改提交几次。
然后开始我们的演示。
可以看到git报错了,所以我们必须通过add和commit保存起来,最好再创建一个分支,如下:
总结图:
常见使用命令:
- 保存现场
git stashgit stash list
- 恢复现场
git stash apply(stash内容并不删除,需要通过git stash drop stash@{id}手动删除)作用,保存在master之前创建的分支上做的修改(想要回到master)。git stash pop(恢复的同时也将stash内容删除)git stash apply stash@{id},回到某一个stash。
演示:
先搭建基础环境:
然后我们回到test分支上进行修改,不做提交,想回到master上:
下面看使用stash pop恢复:
下面使用stash apply和stash drop命令:
主要是git tag这个标签。
简单使用:
这里先介绍一下git blame,作用: 找到上一次修改的人和详细信息
然后在介绍git diff之前,先看linux系统中内置的diff命令。
git diff有四种差别性比较:
- 工作区和暂存区的差别,命令
git diff; - 工作区和某一次提交的差别;
- 最新的提交和工作区的差别,
git diff HEAD。 - 特定
commit-id和工作区的差别,git diff commit-id。
- 最新的提交和工作区的差别,
- 暂存区和某一个提交的差别;
- 最新的提交和暂存区之间的差别,
git diff --cached。
- 最新的提交和暂存区之间的差别,
- 两个提交之间的差别;
先看第一个: 工作区和暂存区的差别:
最近一次提交和工作区之间的差别以及最新的提交和暂存区之间的差别。














