git 的log提供了一個很好的維護版本的機制霞掺,類似一個回滾段,為用戶提供一個撤銷的單位
撤銷working directory
- 以file為操作單位
> git checkout -- [file] #上一版本
#git checkout 命令 和 git reset 類似朴艰,除了它會更新 working directory,
#而不是 staged snapshot
> git checkout HEAD~n/[commit id]#通過n或者commit hash指定版本
撤銷staged snapshot
- 以file為單位
> git rm --cached <file> #從stage刪除
> git reset HEAD~1 [文件](不建議使用) #unstaged文件
- 以commit為單位
> git reset --mixed HEAD
撤銷working directory+staged snapshot
> git reset --hard HEAD #重置為上一版本狀態(tài)仲闽,為commit層次操作
Sum:
在File層次上的操作:
-git reset 指向stage snapshot
-git checkout 指向working directory
在commit層次的操作:
-git checkout 指向分支切換
-git reset 指向[staged snapshot|staged snapshot+working directory]