1.撤销工作区的修改符合就近原则:
工作区 < - 缓冲区 <- 版本库
撤销工作区修改,如果缓冲区有该文件,则checkout -- file 会将缓冲区的内容覆盖到工作区,此时工作区和缓冲区文件内容相同,因此工作区是干净的,并没有未add的文件。
撤销工作区修改,如果缓冲区没有该文件,则checkout -- file命令会继续向上找,找到版本库中的该文件,此时使用版本库中的文件覆盖工作区,工作区不干净,因为有未提交的文件(从版本库中覆盖修改的文件)。
2.撤销缓冲区
撤销缓冲区,使用git rest HEAD -- file ,则会将缓冲区的内容回退到工作区,此时缓冲区被该文件被移除,工作区不干净,有未add的文件(从缓冲区移除了,状态就变成了未add)
分类目录