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 stash
git 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
。
- 最新的提交和暂存区之间的差别,
- 两个提交之间的差别;
先看第一个: 工作区和暂存区的差别:
最近一次提交和工作区之间的差别以及最新的提交和暂存区之间的差别。