Git学习笔记9:工作区、暂存区和HEAD文件差异的恢复

51 阅读6分钟

工作区、暂存区和HEAD文件差异的恢复

先查看下 git 的状态

执行命令:

git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NYp3uJDN-1577153654324)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1020)]

这个时候,在暂存区有文件index.html、README.md的变更。

将暂存区所有文件恢复成 HEAD 的状态

执行命令:

git reset HEAD

执行后的结果如图:

在这里插入图片描述

此时将 文件index.html、README.md的变更 取消暂存了。

查看git状态

执行命令:

git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f1r0ufZf-1577153654327)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1023)]

发现此时 文件index.html、README.md已经恢复到了工作区

验证 暂存区 和 HEAD 的文件差异

执行命令:

git diff --cached

结果如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AHDhEYmX-1577153654327)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1024)]

发现什么也没有了,所以此时暂存区 和 HEAD 的文件差异是一致的。

将暂存区某个文件恢复成 HEAD 的状态

查看当前 git 状态

执行命令:

git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wJVDYNJv-1577153654328)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1025)]

这个时候,在暂存区有文件index.html、README.md的变更。

将文件index.html恢复成HEAD的状态

执行命令:

git reset HEAD fileName

具体的命令为:git reset HEAD index.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-klLN3C2h-1577153654328)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1026)]

再次查看git状态

执行命令:

git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JPvwGK7v-1577153654329)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1028)]

将工作区某文件恢复成 暂存区 的状态

查看当前 git 状态

执行命令:

git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8CvH90I9-1577153654329)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1030)]

在工作区有文件index.html、README.md的变更

查看 工作区 和 暂存区的文件差异

执行命令:

git diff

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GvVIZNJg-1577153654330)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1031)]

将index.html 恢复成暂存区的模样

执行命令:

git checkout -- fileName

具体命令为git checkout -- index.html

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sx03sOhT-1577153654330)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1032)]

再次查看 git 状态和文件差异

  • 查看 git 状态
git status

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QB7lVByP-1577153654331)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1033)]

  • 文件差异
git diff 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F0SwXRJd-1577153654331)(evernotecid://621D2FF6-4E72-4E02-9043-55F31F42819B/appyinxiangcom/22553815/ENResource/p1034)]

发现此时的工作区中,文件index.html的所有变更在暂存区已经完全一致。