回復GIT不同區域修改

上一節做了簡單的一個提交的練習,接著我們來練習如何回復之前所做的操作。假設我們在工作目錄(WD)、暫存區(Stage)或儲存庫(Repo)所做的修改後悔了!想要回到之前的狀態,怎麼辦咧?

要回復狀態這件事等一下再來做,我們先來瞭解一下四種不同的檔案狀態:

  • 未追蹤(Untracked files):在版本提交後才又加進來的檔案,這些檔案並沒有被GIT所追蹤控管
  • 已更改(Changes not staged for commit):已提交版本後,卻又再次修改,這些檔案會被丟回工作目錄(WD)
  • 等待提交(Changes to be committed):在工作目錄(WD)的檔案執行git add後,會放在暫存區(Stage)。這些放在暫存區的檔案狀態便是等待提交囉!
  • 已提交(Committed):在暫存區(Stage)的檔案執行git commit後,檔案便置於儲存區(Repo),這些放在儲存區的檔案即是已提交的狀態。

【Ex-1 檔案狀態練習】我們先開一個和上節練習一樣的版控環境,只是資料夾名稱改成test2:

mkdir test2
cd test2
git init
echo 狀態練習 > a.txt
git add .
git commit -m "init"

如果在cmd貼上指令以後,會全部放在一行,造成無法執行。此時可先貼在notepad++,按Ctrl+H,將\n取代成\r\n,勾選「增強模式」後,按「全部取代」,再從notepad++複製並貼在cmd上即可執行

  1. 新增b.txt,並觀察檔案狀態(Untracked files)

     echo 1 > b.txt  
     type b.txt  
     git status  
    


  2. 修改a.txt,並觀察檔案狀態(Changes not staged for commit)

     type a.txt  
     echo 2 > a.txt  
     type a.txt  
     git status  
    


  3. 將b.txt新增至暫存區(Stage),並觀察檔案狀態(Changes to be committed)

     git add b.txt  
     git status  
    


  4. 將b.txt提交(commit)至儲存區(Repo),並觀察檔案狀態(Committed)

     git commit -m "add b.txt"  
     git status  
    


5.現在a.txt的狀態是「已更改」(Changes not staged for commit),你可以改成「等待提交」(Changes to be committed)及「已提交」(Committed)狀態嗎?自己練習一下囉!

results matching ""

    No results matching ""