復原變更

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

當您想要復原 Git 存放庫中的變更時,請先決定您要復原的變更類型。 例如,您可能要:

  • 將檔案還原為最後一個認可的版本,以捨棄檔案的未認可變更。 您也可以將檔案還原為任何認可的版本。
  • 將分支重設為先前的認可,將分支還原為先前的狀態。
  • 建立可反轉變更的新認可,以復原共享認可所做的變更。 由於此方法不會重寫現有的認可歷程記錄,因此適合反轉由推送且供其他人使用的認可所做的變更。
  • 修改您的最後一個認可,以修改其內容或訊息。 如需詳細資訊,請參閱 如何更新上次認可
  • 藉由建立包含修正的新 認可 ,以修正先前認可中導入的問題。 如需詳細資訊,請參閱 如何建立認可

在本文中,您將了解如何:

  • 捨棄檔案的未認可變更
  • 將分支還原為先前的狀態
  • 復原共享認可所做的變更

捨棄檔案的未認可變更

如果您已對檔案進行變更,但尚未認可這些變更,您可以使用 Git 簽出 來快速捨棄變更,並將檔案還原為其最後認可版本。

當您指定認可標識符時,Git checkout 也可以將檔案還原為任何認可的版本。

警告

如果可能想要重新套用 Git checkout 會捨棄的變更,請考慮 改為隱藏 這些變更。

Visual Studio 2022 使用 Git 功能表、Git 變更,以及透過 方案總管 中的操作功能表,提供 Git 版本控制體驗。 Visual Studio 2019 16.8 版也提供 Team Explorer Git 使用者介面。 如需詳細資訊,請參閱 Visual Studio 2019 - Team Explorer 索引標籤。

Visual Studio 支持藉由將檔案還原為其最後認可版本來捨棄檔案的未認可變更。

在 [ Git 變更 ] 視窗中,使用您想要捨棄的變更來識別檔案。 如果檔案位於 [ 分段變更 ] 區段中,請以滑鼠右鍵按兩下它,然後選擇 [Unstage]。 未標記的檔案會顯示在 [變更 ] 區段中。

Visual Studio 中暫存檔案的操作功能表選項螢幕快照。

如果檔案位於 [變更 ] 區段中,請以滑鼠右鍵按兩下它,然後選擇 [復原變更 ] 以捨棄檔案自上次認可后的所有變更。

Visual Studio 中已變更檔案的操作功能表選項螢幕快照。

將分支還原為先前的狀態

您可以使用 Git 重設 將分支重設為先前的認可,將分支還原為先前的狀態。 Git reset 會影響所有分支資料夾中的所有檔案。

Git reset 有幾個選項。 默認選項是將分支還原為先前的認可,但保留所有後續變更作為未認可的變更。 另一個選項是將分支還原為先前的認可,方法是捨棄自該認可以來所有分支檔案的所有變更。

警告

如果上次認可已推送並與他人共用,請勿將分支重設為上次認可之前的認可。 這樣做會導致您的本機分支歷程記錄不再符合遠端分支歷程記錄。 如需共用分支,請參閱 復原共享認可所做的變更。

  1. 從功能表欄中,選擇 [Git > 檢視分支歷程記錄 ] 以開啟 最新分支的 [歷程記錄 ] 索引標籤。

    Visual Studio 中 Git 功能表中 [檢視分支歷程記錄] 選項的螢幕快照。

  2. 在最新分支的 [歷程記錄] 索引標籤中,以滑鼠右鍵按下您要重設的認可,然後選擇 [重>設刪除變更],將分支重設為選取的認可,並刪除認可后所有分支檔案的所有變更。 或者,選擇 [重設保留變更] (--mixed) 將分支重設為>選取的認可,並將所有後續變更保留為未標記的變更。

    Visual Studio 中 [歷程記錄] 視窗中認可操作功能表中 [重設] 選項的螢幕快照。

復原共享認可所做的變更

您可以使用 Git 還原 來復原認可所做的變更,以建立可反轉這些變更的新認可。 Git revert 不會刪除原始認可。 此方法適用於復原共享認可所做的變更,因為 Git revert 不會改變先前的認可歷程記錄,因此本機和遠端分支歷程記錄會繼續相符。

  1. 從功能表欄中,選擇 [Git > 檢視分支歷程記錄 ] 以開啟 最新分支的 [歷程記錄 ] 索引標籤。

    Visual Studio 中 Git 功能表中 [檢視分支歷程記錄] 選項的螢幕快照。

  2. 在最新分支的 [ 歷程記錄 ] 索引標籤中,以滑鼠右鍵按下您要還原的認可,然後選擇 [還原 ] 以建立新的認可,以復原所選認可所做的變更。

    Visual Studio 中 [歷程記錄] 視窗中認可操作功能表中 [還原] 選項的螢幕快照。

下一步