天天看點

git 指令怎麼退回到目前版本未修改之前的狀态?

在此之前,我們先了解一下工作區和暫存區:

工作區(Working Directory)

就是你在電腦裡能看到的目錄,比如下面的 ​

​learngit​

​ 檔案夾就是一個工作區:

git 指令怎麼退回到目前版本未修改之前的狀态?

暫存區

工作區有一個隐藏目錄 ​

​.git​

​,這個不算工作區,而是Git的版本庫(Repository)。

Git 的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有 Git 為我們自動建立的第一個分支 master,以及指向 ​

​master​

​​ 的一個指針叫 ​

​HEAD​

​。

git 指令怎麼退回到目前版本未修改之前的狀态?

​git add​

​ 把檔案添加進去,實際上就是把檔案修改添加到暫存區;
git 指令怎麼退回到目前版本未修改之前的狀态?

​git commit​

​ 送出更改,實際上就是把暫存區的所有内容送出到目前分支。
git 指令怎麼退回到目前版本未修改之前的狀态?

總的來說就是需要送出的檔案修改通通放到暫存區,然後,一次性送出暫存區的所有修改。

下面開始正題,要退回到目前版本需要分情況

1、沒有 add(沒有添加到暫存區)

這裡隻有一步就是:丢棄工作區的修改

撤銷一個檔案修改:

git      

撤銷全部檔案修改:

git checkout -- .      

2、已經 add,但是沒有 commit(已經添加到暫存區)

第一步:撤銷暫存區的檔案(撤銷add)

把暫存區的修改撤銷掉(unstage),重新放回工作區:

git reset HEAD <file>      

撤銷這次所有暫存區的檔案

git reset HEAD .      

第二步:丢棄工作區的修改

這個就是跟 ​

​沒有 add(沒有添加到暫存區)​

​ 的處理一樣:

git      
git checkout -- .      

參考資料

  • ​​【廖雪峰的官方網站:git教程】​​
  • ​​【git常用操作】​​