· 基础:
git三个区(本地):
(1) 工作区(working directory)
(2) 暂存区(stage, index)
(3) 仓库(repository)
· Un-do
(1)撤销add操作
将加入Stage中的文件(gitstatus绿色)取出放到WorkingDir中(红色)
git reset Head [path]
eg:将所有add后,并在stage中的文件都取出(gitstatus显示绿色的所有文件都变红色)
git reset Head *
(2)撤销修改
文件修改后,git status变红,使用git checkout -- [path]可撤销被修改的文件内容(文件内容直接回到被修改前)
文件修改后,git status变红;或修改后被add,变绿。使用git reset Head --hard, 文件内容直接回到被修改前
· Difference
git reset is specifically about updating the index, moving the HEAD.
git checkout is about updating the working tree (to the index or thespecified tree). It will update the HEAD only if you checkout a branch (if not,you end up with a DETACHED HEAD).