使用 Git 命令來復原特定的資料
使用 Git 命令復原資料的能力對於開發人員還原意外變更、還原已刪除的檔案或復原遺失的認可至關重要。 這有助於將非預期的停機減至最少,並確保專案持續性。 然而,儘管其優點非常明確,但指出其潛在的風險很重要。 套用本單元中所述的 Git 命令時,必須謹慎行事,尤其是在操作認可歷程記錄或復原變更時,因為錯誤可能會導致資料遺失。
Git 資料復原命令
處理資料復原的 Git 命令可以分成數個類別,包括復原認可、檔案、特定程式碼,以及已刪除的認可或分支。
復原認可
- git log:會列出存放庫的認可歷程記錄。 您可以瀏覽記錄,以尋找您想要復原的認可。
- git checkout <認可>:會切換至特定認可,有效地「復原」該認可時存放庫的狀態。
- git cherry-pick <認可>:會將特定認可引進的變更套用至最新分支。
復原檔案
- git checkout <認可><檔案>:會從先前的認可還原特定檔案。
- git restore <檔案>:會捨棄本機變更,並將檔案還原至其最後的認可狀態 (假設您尚未認可變更)。
復原特定程式碼
- git blame <檔案>:會顯示檔案中每一行的修訂和作者,協助您識別引進特定變更的認可。
- git show <認可>:<檔案>:會顯示特定認可時的檔案內容。 您可以指定認可和檔案路徑,以查看當時存在的內容。
正在復原已刪除的認可或分支
- git reflog:會顯示所有認可的記錄。 您可以將其用於尋找先前刪除的認可或分支的 SHA-1 雜湊,然後將其簽出或還原。
- git fsck --lost-found:會檢查存放庫的完整性,並列出無法從任何分支或標記連線的任何認可。 您可以使用這來復原遺失的認可。
請記得要謹慎使用這些命令,尤其是在操作認可歷程記錄或還原變更時。 請務必先建立存放庫的備份,再開始或使用 git stash 來儲存目前的變更,再嘗試任何復原作業。
範例案例
讓我們逐步解說範例案例,說明使用 Git 命令來復原已刪除檔案的流程。 我們假設您 Git 存放庫中名為 example.txt 的檔案已遭到意外刪除,而您需要將其復原。
檢視認可歷程記錄:
- 首先顯示認可歷程記錄:
git log - 在認可歷程記錄清單中,識別最後存在檔案 example.txt 的認可的 SHA-1 雜湊。
正在還原已刪除的檔案:
- 識別出認可的 SHA-1 雜湊之後,請使用 git checkout 來還原檔案:
git checkout <commit_SHA>^ -- example.txt - 以認可的 SHA-1 雜湊取代 <commit_SHA>。 ^ 符號表示該認可的父代,有效地將檔案還原到刪除之前的狀態。
驗證變更:
- 還原檔案之後,請檢查存放庫狀態,以確認是否已成功還原:
git status - 驗證 example.txt 是否列為已修改或未追蹤的檔案。
暫存及認可變更:
- 如果檔案列為已修改,請暫存該檔案以進行認可:
git add example.txt - 使用適當的認可訊息認可變更:
git commit -m "Restored example.txt"