復原變更

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

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 變更 ] 視窗中,使用您想要捨棄的變更來識別檔案。 如果檔案位於 [ 暫存變更 ] 區段中,請以滑鼠右鍵按一下它,然後選擇 [ 取消設置]。 未標記的檔案會顯示在 [變更 ] 區段中。

Visual Studio 中暫存檔案的操作功能表選項螢幕擷取畫面。

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

Visual Studio 中已變更檔案的操作功能表選項螢幕擷取畫面。

將分支還原為先前的狀態

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

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

警告

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

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

    Visual Studio 中 Git 功能表中 [檢視分支歷程記錄] 選項的螢幕擷取畫面。

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

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

復原共用認可所做的變更

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

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

    Visual Studio 中 Git 功能表中 [檢視分支歷程記錄] 選項的螢幕擷取畫面。

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

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

下一步