1.git status :查看缓存区状态
我们在工作目录下创建一个name.txt文件夹。打开git bash,输入指令
git status
git提示我们创建了name.txt文件,但是还未进行![]()
git撤销指令和对比差异指令 操作加入到缓存区,所以git目前无法跟踪。
add
根据提示我们输入add指令:,然后输入
git add name.txt
再查看缓存区状态
git status
name.txt变成绿色了,说明我们![]()
git撤销指令和对比差异指令 操作成功,那假如说我add之后我们我想撤销怎么办
add
。我们可以执行
(未commit)
指令撤销。最后输入
git reset HEAD name.txt
再查看缓存区状态
git status
可以看到name.txt变成了未add了![]()
git撤销指令和对比差异指令
2.git checkout --文件名
git checkout --文件名 用于撤销工作区的内容。同样举上面的例子:假如说昨天name.txt被我提交到缓存区了,今天我又对name.txt进行修改,但是现在我想把工作区的内容撤销掉。
我们可以先使用
查看工作区和缓存区的差异
git diff name.txt
发现今天我只给name.txt添加了俩个字母aa(当然日常工作可不是这么简单,你一天工作可能写到自己发懵,你手动删除根本不知从哪开始),我想恢复到昨天的内容可以调用:![]()
git撤销指令和对比差异指令 。你打开你的文件就会发现内容已经恢复到昨天的状态。
git checkout -- name.txt
可以查看工作区和缓存区的差异,那工作区和本地仓库差异、缓存区和本地仓库差异怎么看。
git diff name.txt
3.查看差异指令
git diff
比较的是工作区和暂存区的差别
git diff --cached
比较的是暂存区和版本库的差别
git diff HEAD
可以查看工作区和版本库的差别
还是举上面的例子。name.txt文件被我们commit到了版本库,现在我在工作区对name.txt进行修改。通过可以查看工作区和版本库的差异
git diff HEAD name.txt
现在我在工作区对name.txt进行修改后进行![]()
git撤销指令和对比差异指令 操作,通过
add
可以查看缓存区和版本库的差异
git diff --cached name.txt
因为我们add之后缓存区和工作区的代码已经一样,因此他们和版本库的差异是相同的。![]()
git撤销指令和对比差异指令
4.git reset 版本号
git reset 版本号
可以让我们回退到某个版本,默认是版本库和缓存区都会回退,工作区不会回退。
依旧使用上面的例子:假如说我们今天对name.txt修改了然后准备下班我们把它add到缓存区,然后commit到版本库。但是突然发现有个bug怎么办?
先调用
查看我们的提交的版本号,这个指令可以看到我们所有的操作,包括删掉的
git reflog
commit
然后我们可以看到第一个commit是我们刚提交的版本吗,如果要回到红圈圈起来的那个版本我们可以调用:![]()
git撤销指令和对比差异指令 。最后调用
git reset 6637c52
查看一下日志。
git log
![]()
git撤销指令和对比差异指令 已经显示版本回退成功了
需要注意的是缓存区也会跟随版本回退,工作区不变。当你重新修改完后需要add再commit。