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。
取得 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 }搜尋 回收站中您的存放庫。
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 }-
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,以 重新註冊到專案。
還原維基頁面
轉到存放庫的URL:
https://dev.azure.com/<OrgName>/<ProjectName>/_git/classicreleaseoption.wiki。搜尋主要分支的歷程記錄,
wikiMain。請找到並選擇包含已刪除檔案的提交。
選取
其他動作,然後 [還原]。建立並完成提取要求。
您的 wiki 頁面會恢復。
使用 CLI 還原 Wiki 頁面
如果您偏好命令行選項,請執行下列步驟。
- 將Wiki複製到本機電腦。
- 搜尋刪除頁面的提交。
- 查看提交記錄。
- 複製頁面以建立新提交。
您的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 重新發佈
- 移至專案中的 概觀>Wiki 。
- 如果未顯示任何 Wiki,請選取 [將程式碼發佈為 Wiki]。
- 選取還原的存放庫和分支(通常
wikiMaster)。 - 如有需要,請提供 wiki 名稱和資料夾路徑。
- 選取 [] 發佈 []。
如需詳細步驟,請參閱 將 Git 存放庫發佈至 Wiki。
選項 2:使用 REST API 重新建立 Wiki 註冊
使用 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
-
使用 Wikis - 列出 REST API 列出維基以驗證維基註冊。
GET https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis?api-version=7.1-preview.2
修復後驗證
使用任一選項後:
- 確認存放庫和分支存在於 Repos 的專案中。
- 確認 Wiki 出現在您的專案中的 [ 概觀>Wiki] 底下。
- 檢查權限、連結和任何引用舊 wiki 的小工具。
注意
- 資源回收筒和某些 wiki 註冊 API 是預覽版,可能會變更 - 在非生產組織中進行測試,並使用針對您的環境記錄的 API 版本。
- 針對專案 Wiki(佈建的 Wiki),在 REST API 呼叫中使用
type: "projectWiki"取代"codeWiki",並省略repositoryId和mappedPath屬性。