使用 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"