Created With

linkGit 還原

linkHEAD 指標

HEAD 指標所指向的提交紀錄就是現在看到的版本

HEAD 指標可指向任何分支或任何提交紀錄

移動 HEAD 指標就可移動到任意分支或任意提交紀錄

藉由移動 HEAD 指標前往指定的提交紀錄,對 HEAD 指標來說存在於未來的提交紀錄會無法用 git log 看到,這些看不到的提交紀錄不會消失

link移動到分支或提交紀錄 checkout

在 GUI 軟體中,HEAD 指標會移動,線圖不會改變

1link> git checkout 位置次數

位置可以是以下三種的其中一種:

次數可用可不用,次數的符號可以是 ^ 或 ~,用符號的個數或在一個符號後面寫數字,代表要倒退幾次,回到幾個版本紀錄前,舉例來說以下兩行的意義相同:

1linkgit checkout main^^^

2linkgit checkout main~3

link取消修改檔案

使用時機是編輯檔案後,加入索引前

一個檔案

1linkgit checkout -- 檔名

所有檔案

1linkgit checkout .

取消修改檔案的狀態變化:

步驟指令原狀態 > 新狀態
修改檔案未修改 > 已修改
取消修改檔案git checkout -- 檔名已修改 > 未修改

link還原版本 reset

在 GUI 軟體中,HEAD 指標會移動,線圖會改變

1linkgit reset 位置次數

位置可以是以下三種的其中一種:

次數可用可不用,次數的符號可以是 ^ 或 ~,用符號的個數或在一個符號後面寫數字,代表要倒退幾次,回到幾個版本紀錄前,舉例來說以下兩行的意義相同:

1linkgit reset HEAD^^^

2linkgit reset HEAD~3

link查詢 HEAD 指標的移動紀錄 reflog

git resetgit checkout 分支 都會移動 HEAD 指標,並留下一筆紀錄,可用以下指令查詢

1linkgit reflog

link綜合應用

依序執行這七件事

會出現下列執行結果

1link> git log --oneline

2link1234567 (HEAD -> main) second commit

3linkabcdefg Initial commit

4link

5link> git checkout main

6linkAlready on 'main'

7link

8link> git reset abcdefg

9linkUnstaged changes after reset:

10linkM 檔案名稱

11link

12link> git log --oneline

13linkabcdefg Initial commit

14link

15link> git reflog

16linkabcdefg (HEAD -> main) HEAD@{0}: reset: moving to abcdefg

17link1234567 HEAD@{1}: checkout: moving from main to main

18link

19link> git reset 1234567

20link

21link> git log --oneline

22link1234567 (HEAD -> main) second commit

23linkabcdefg Initial commit

Git 還原HEAD 指標移動到分支或提交紀錄 checkout取消修改檔案還原版本 reset查詢 HEAD 指標的移動紀錄 reflog綜合應用

技術筆記

準備chevron_right
HTMLchevron_right
CSS 基礎chevron_right
JS 基礎chevron_right
Git & GitHubchevron_right
CSS 進階chevron_right
Node.jschevron_right

返回個人網站