有關(guān) GIT 結(jié)構(gòu)的示意圖
關(guān)于 Checkout 和 Reset 的區(qū)別
撤銷對于單個文件的修改
如果該文件已經(jīng)通過 add 提交到了Stage(index)區(qū)域:
- 那我們首先要用 git reset HEAD <file> 從 stage 區(qū)域中撤銷。
- 再從工作區(qū)中撤銷,即用 Stage 中的文件替換working directory 中的
git checkout -- <file>
再次說明下:checkout 只是把文件撤回到上一次 commit 或者上次 add 的狀態(tài),具體而言,文件修改后還沒有放回到 stage 區(qū)域,那么執(zhí)行 checkout 后,文件會變成跟版本庫中一樣,假設(shè)文件修改后已經(jīng)被放到 stage 區(qū)域,執(zhí)行 checkout,那文件恢復(fù)至跟 stage 區(qū)域一致。