git回退单个文件
git原理
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
git reset命令简介
git reset用于回退代码,具有三个参数--hard、--mixed、--soft。
回退单个文件
- git log
获取需要回退的commit_id。
- git reset
git reset <commit_id> <file_path>
然后执行git status,会发现工作区和暂存区均有变化,提示需要进行git add和git commit,原因是git reset作用于文件时,只会修改暂存区。(版本库肯定无法修改,因为只回退了一个文件,其他的文件并没有回退,所以整个版本不能回退)
注意这边的filepath只能是相对路径比如从项目为根路径或者直接写上文件名
如果是绝对路径则会出现以下的报错 outside repository
- git checkout
git checkout .
从暂存区恢复文件到工作区。