工作區(qū)Working Directory
就是電腦里能看到的目錄
working directory.png
暫存區(qū)Stage
工作區(qū)有一個隱藏目錄.git咬崔,這是git的倉庫Repository
倉庫里有很多東西,其中最重要的是暫存區(qū)Stage(index)
還有自動為我們創(chuàng)建的第一個分支master冗茸,以及指向master的指針HEAD
工作流程
- 當(dāng)我們對文件作出修改時皇耗,我們是在工作區(qū)Working Directory進行了修改
- 使用
git add
的時候,我們把文件修改添加到了暫存區(qū)Stage耙厚, - 使用
git commit
的時候参歹,我們把暫存區(qū)的內(nèi)容提交到了當(dāng)前分支上
撤銷修改
1.撤銷工作區(qū)的修改
現(xiàn)在打開readme.txt仰楚,任意修改其內(nèi)容,甚至是刪除掉這個文件
這些都只是在工作區(qū)上進行了修改
撤銷使用
git checkout -- readme.txt
這樣是把暫存區(qū)的readme.txt的版本替換過來
或者使用
git checkout -- .
把暫存區(qū)的所有文件替換過來
2.撤銷暫存區(qū)的修改
當(dāng)使用過git add
后犬庇,修改被保存到了暫存區(qū)
撤消使用
git reset --hard HEAD readme.txt
這樣是把分支上HEAD指向的commit id的readme.txt的版本替換過來
--hard
會同時替換暫存區(qū)和工作區(qū)僧界,如果不加則只會替換暫存區(qū)
或者
git reset --hard HEAD
git reset --hard
替換全部文件
3.撤銷分支上的修改
當(dāng)使用過git commit
后,修改從暫存區(qū)提交到了分支上
我們可以使用版本回退到上一個版本
http://www.reibang.com/p/ffad1b5b0e1c
即
git reset --hard HEAD^
或者
git reset --hard HEAD~1