回復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上即可執行
新增b.txt,並觀察檔案狀態(Untracked files)
echo 1 > b.txt type b.txt git status
修改a.txt,並觀察檔案狀態(Changes not staged for commit)
type a.txt echo 2 > a.txt type a.txt git status
將b.txt新增至暫存區(Stage),並觀察檔案狀態(Changes to be committed)
git add b.txt git status
將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)狀態嗎?自己練習一下囉!