共用方式為


還原已刪除的Wiki

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

如果使用者不小心刪除了已布建的(專案)或已發佈的(程序代碼)Wiki,您可以加以還原。 雖然 UI 中沒有刪除 Wiki 的選項,但使用者可能會使用 REST API 來刪除與 Wiki 相關聯的 Git 儲存庫。

注意

已刪除的存放庫會在資源回收筒中保留 30 天,之後將永久刪除且無法還原。

先決條件

類別 要求
專案存取權限 Wiki所在的項目成員。 如果您沒有存取權,請向專案管理員要求它。 任何有權存取小組專案的人都可以檢視Wiki,包括 項目關係人
許可權 - 若要新增或編輯 Wiki 頁面:參與者 群組的成員。
- 若要將程式代碼發佈為wiki:建立存放庫 許可權。 根據預設,此許可權會針對 Project Administrators 群組的成員設定。
存取層級 至少擁有 基本 存取權。

還原完整的維基百科

在 Azure DevOps 中,專案的 Wiki 和程式碼的 Wiki 都會儲存為專案中的存放庫。 完成下列步驟,以使用 REST API 還原完整的 Wiki。

  1. 取得 git 存放庫:列出存放庫

    使用 includeHidden=true 參數來查看wiki存放庫。

    GET https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/repositories?includeHidden=true&api-version=7.1-preview.1
    
            {
                "id": "978e3886-64a8-4b6f-96da-6afc2936b04b",
                "name": "fabrikamfiber.wiki",
                "url": https://dev.azure.com/christiechurch/052a83ac-af70-4194-b53f-df073e5f1786/_apis/git/repositories/978e3886-64a8-4b6f-96da-6afc2936b04b,
                "project": {
                    "id": "052a83ac-af70-4194-b53f-df073e5f1786",
                    "name": "fabrikamfiber",
                    "url": https://dev.azure.com/christiechurch/_apis/projects/052a83ac-af70-4194-b53f-df073e5f1786,
                    "state": "wellFormed",
                    "revision": 421800049,
                    "visibility": "organization",
                    "lastUpdateTime": "2023-07-18T12:25:29.3Z"
                },
                "defaultBranch": "refs/heads/wikiMaster",
                "size": 193,
                "remoteUrl": https://christiechurch@dev.azure.com/christiechurch/fabrikamfiber/_git/fabrikamfiber.wiki,
                "sshUrl": git@ssh.dev.azure.com:v3/christiechurch/fabrikamfiber/fabrikamfiber.wiki,
                "webUrl": https://dev.azure.com/christiechurch/fabrikamfiber/_git/fabrikamfiber.wiki,
                "isDisabled": false,
                "isInMaintenance": false
            }
    
  2. 搜尋 回收站中您的存放庫。

    GET https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/recycleBin/repositories?api-version=7.1-preview.1
    

    當您找到名為 .wiki的存放庫時,請記下存放庫標識碼。

    {
        "value": [
            {
                "id": "978e3886-64a8-4b6f-96da-6afc2936b04b",
                "name": "fabrikamfiber.wiki",
                "project": {
                    "id": "052a83ac-af70-4194-b53f-df073e5f1786",
                    "name": "fabrikamfiber",
                    "url": https://dev.azure.com/christiechurch/_apis/projects/052a83ac-af70-4194-b53f-df073e5f1786,
                    "state": "wellFormed",
                    "revision": 421800049,
                    "visibility": "organization",
                    "lastUpdateTime": "2023-07-18T12:25:29.3Z"
                },
                "deletedBy": {
                    "displayName": "Christie Church",
                    "url": https://spsprodeus23.vssps.visualstudio.com/A1df9d653-bdfb-459b-a0c7-725052b2f944/_apis/Identities/0a0a4b55-9671-440d-87bf-26644f200d8a,
                    "_links": {
                        "avatar": {
                            "href": https://dev.azure.com/christiechurch/_apis/GraphProfile/MemberAvatars/aad.MDY4MDk2OGQtYWU5OS03Y2M5LTgxZTEtNTBjMDk4ZTllZTlh
                        }
                    },
                    "id": "0a0a4b55-9671-440d-87bf-26644f200d8a",
                    "uniqueName": christiechurch@fabrikam.com,
                    "imageUrl": https://dev.azure.com/christiechurch/_api/_common/identityImage?id=0a0a4b55-9671-440d-87bf-26644f200d8a,
                    "descriptor": "aad.MDY4MDk2OGQtYWU5OS03Y2M5LTgxZTEtNTBjMDk4ZTllZTlh"
                },
                "createdDate": "2023-07-18T12:23:55.64Z",
                "deletedDate": "2023-07-18T12:41:38.737Z"
            }
        ],
        "count": 1
    }
    
  3. 從存放庫回收站還原wiki

    PATCH https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/recycleBin/repositories/978e3886-64a8-4b6f-96da-6afc2936b04b?api-version=7.1-preview.1
    
    {
        "deleted": false
    }
    

儲存庫的內容已還原。 如果 Wiki UI 未自動重新出現,請將還原的存放庫發佈為 Wiki,或透過 Wiki REST API 建立 Wiki,以 重新註冊到專案。

還原維基頁面

  1. 轉到存放庫的URL:https://dev.azure.com/<OrgName>/<ProjectName>/_git/classicreleaseoption.wiki

  2. 搜尋主要分支的歷程記錄,wikiMain

  3. 請找到並選擇包含已刪除檔案的提交。

  4. 選取 其他動作,然後 [還原]

  5. 建立並完成提取要求。

您的 wiki 頁面會恢復。

使用 CLI 還原 Wiki 頁面

如果您偏好命令行選項,請執行下列步驟。

  1. 將Wiki複製到本機電腦。
  2. 搜尋刪除頁面的提交。
  3. 查看提交記錄。
  4. 複製頁面以建立新提交。

您的Wiki頁面已還原。

刪除存放庫

DELETE https://dev.azure.com/christiechurch/fabrikamfiber/_apis/git/repositories/052a83ac-af70-4194-b53f-df073e5f1786?api-version=7.1-preview.1

重新關聯被恢復的維基

資源回收筒還原會復原 Git 存放庫 (Wiki 頁面和歷程記錄),但不一定會在 UI 中重新建立 Wiki 註冊或檔案名稱關聯。

如果還原存放庫之後 Wiki 未出現,您有兩個選項:

選項 1:透過 UI 重新發佈

  1. 移至專案中的 概觀>Wiki
  2. 如果未顯示任何 Wiki,請選取 [將程式碼發佈為 Wiki]。
  3. 選取還原的存放庫和分支(通常 wikiMaster)。
  4. 如有需要,請提供 wiki 名稱和資料夾路徑。
  5. 選取 [] 發佈 []。

如需詳細步驟,請參閱 將 Git 存放庫發佈至 Wiki

選項 2:使用 REST API 重新建立 Wiki 註冊

  1. 使用 Wiki 建立新的 Wiki- 建立 REST API:

    POST https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis?api-version=7.1-preview.2
    

    請求內文:

    {
        "type": "codeWiki",
        "name": "Fabrikam Fiber Wiki",
        "projectId": "052a83ac-af70-4194-b53f-df073e5f1786",
        "repositoryId": "978e3886-64a8-4b6f-96da-6afc2936b04b",
        "mappedPath": "/",
        "version": {
            "version": "wikiMaster"
        }
    }
    

    取代下列值:

    • {organization}:您的 Azure DevOps 組織名稱
    • {project}:您的專案名稱或 ID
    • name:wiki 的顯示名稱
    • projectId:步驟 2 中的專案 ID
    • repositoryId:步驟 2 中的儲存庫 ID
    • mappedPath:根資料夾路徑(通常)/
    • version:分店名稱(通常)wikiMaster
  2. 使用 Wikis - 列出 REST API 列出維基以驗證維基註冊。

    GET https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis?api-version=7.1-preview.2
    

修復後驗證

使用任一選項後:

  1. 確認存放庫和分支存在於 Repos 的專案中。
  2. 確認 Wiki 出現在您的專案中的 [ 概觀>Wiki] 底下。
  3. 檢查權限、連結和任何引用舊 wiki 的小工具。

注意

  • 資源回收筒和某些 wiki 註冊 API 是預覽版,可能會變更 - 在非生產組織中進行測試,並使用針對您的環境記錄的 API 版本。
  • 針對專案 Wiki(佈建的 Wiki),在 REST API 呼叫中使用 type: "projectWiki" 取代 "codeWiki",並省略 repositoryIdmappedPath 屬性。

後續步驟