共用方式為


撤銷變更

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022

Visual Studio 2019 |Visual Studio 2022

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

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

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

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

先決條件

類別 需求
專案存取 專案的成員。
許可 - 檢視私人專案中的程式碼:至少具有 基本 存取權。
- 複製或貢獻於私人專案中的程式碼:貢獻者安全群組成員或專案中相應權限。
- 設定分支或儲存庫權限: 管理權限 是分支或儲存庫的權限。
- 更改預設分支: 編輯政策 是儲存庫的權限。
- 匯入存放庫: 專案系統管理員安全性 群組的成員或 Git 專案層級 建立存放庫 許可權設定為 [允許]。 如需詳細資訊,請參閱 設定 Git 存放庫許可權
Services 已啟用 Repos
工具 選擇性。 使用 az repos 指令:Azure DevOps CLI

注意

在公用專案中,具有 專案關係人 存取權的使用者具有 Azure Repos 的完整存取權,包括檢視、複製和參與程式代碼。

類別 需求
專案存取 專案的成員。
許可 - 查看代碼:至少基本訪問權限
- 複製或參與程式碼: 參與者安全性群組 的成員或專案中的對應許可權。
Services 已啟用 Repos

捨棄檔案的未提交變更

如果您已對檔案進行變更,但尚未認可這些變更,您可以使用 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. 目前分支的 [歷程記錄] 索引標籤中,以滑鼠右鍵按一下您想要重設的提交,然後選擇 [重設刪除變更 (--hard)],將分支重設為所選提交,並刪除該提交後所有分支檔案的所有變更。 或者,選擇 重置 > 保留變更 (--mixed) 以將分支重設為選取的提交,並將所有後續變更保留為未放入暫存區的變更。

    Visual Studio 中 [歷程記錄] 視窗中提交的內容功能表中 [重設] 選項的螢幕快照。

復原共享認可所做的變更

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

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

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

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

    Visual Studio 中 [歷史] 視窗的提交操作功能表中 [還原] 選項的螢幕擷取畫面。

下一步