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,以便確定要回到的哪個版本