git reset:
1. 文件从暂存区回退到工作区,撤销add
2. 版本回退
一:文件从暂存区回退到工作区,撤销add
如果想取消某个add的文件,可以使用该命令来进行撤销操作
撤消add:git reset 文件名
撤消所有add的文件:git reset HEAD .
撤消某个文件或文件夹:git reset HEAD 文件(夹)名
把从cache中删除的文件,重新添加到cache中: git add -f 文件名
eg:今天add文件的时候,不小心使用了git add . 将配置文件等也给add到缓存区了,那么如何从缓存区撤销我们不想add的文件呢? 使用命令: git reset fileName
但是,如果不小心使用了git rm --cached fileName清除缓存,此时缓存区中的文件已经被清除了,我们需要将撤销的文件再add到缓存区,接下来使用git reset fileName命令
二:版本回退
1. git reset --mixed commit的id
还原到commit的id,(git reset 默认是mixed )此commit之后的文件变成modified红色(即还没add的状态)
2. git reset --soft commit的id
还原到commit的id,此commit之后的文件变成modified绿色(即add(勾选中)的状态)
3. git reset --hard commit的id
还原到commit的id,此commit之后的文件都被还原
三:对reset进行撤销
睡了一觉,第二天醒来,我们后悔了,又想回到reset之前的状态,该怎么做呢?
Git提供了一个命令git reflog
用来记录每一次的操作,及时是reset掉的commit记录,reflog都会有记录,所以只需找到对应的commitId,以便确定要回到的哪个版本