git 還原單一檔案至上個版本

 今天在練習用git版本控制來還原單一個檔案,而不是全部都退回,因為這個操作對我而言,應該會比較常用,所以記錄一下學習步驟。

我有兩個檔案test1.txt、test2.txt


commit後結果如下圖


接著在test1.txt增加內容


commit後結果如下圖


接著我在test2.txt增加內容,但是沒有commit,接著模擬需要把test1.txt還原


先用reset解除commit:
$ git reset HEAD^

如圖的版本002紀錄會被移除,但是保留檔案的修改內容,若是對應的檔案有在做修改,則以後續修改版本為主。


所以目前的test1.txt、test2.txt的內容都還保留住


接著把test1.txt還原:
$ git checkout test1.txt

如下圖test1.txt的內容已經被還原了,但是test2.txt的內容是不變的。



另外,我在其他文章上看到可以先產生新的分支,再切換至分支後還原單一檔案,沒有問題後再將分支合併,這樣的做法似乎比較安全一點。