Git-adattár importálása
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Ez a cikk bemutatja, hogyan importálhat egy meglévő Git-adattárat a GitHubról, a Bitbucketből, a GitLabből vagy más helyről egy új vagy üres meglévő adattárba az Azure DevOps-projektben.
Előfeltételek
- Egy szervezet az Azure DevOpsban. Ha nincs ilyenje, ingyenesen regisztrálhat egyet. Minden szervezet ingyenes, korlátlan privát Git-adattárakat tartalmaz.
- Adattár létrehozásához vagy importálásához a Projektgazdák biztonsági csoport tagjának kell lennie, vagy a Git projektszintű létrehozási tárház engedélyének Engedélyezés értékre kell állítania. További információ: Git-adattárengedélyek beállítása.
- Az Azure DevOps Import-adattár funkció használatához a TFS 2017 1. vagy újabb frissítésével kell rendelkeznie.
- Ha TFS 2017 RTM vagy korábbi verzióval szeretne adattárat importálni, olvassa el az Adattár manuális importálása Git CLI használatával című témakört.
- Ha az adattárparancsokat szeretne használni, mindenképpen kövesse az Azure DevOps parancssori felület használatának első lépéseit.
- Egy szervezet az Azure DevOpsban. Ha nincs ilyenje, ingyenesen regisztrálhat egyet. Minden szervezet ingyenes, korlátlan privát Git-adattárakat tartalmaz.
- Adattár létrehozásához vagy importálásához a Projektgazdák biztonsági csoport tagjának kell lennie, vagy a Git projektszintű létrehozási tárház engedélyének Engedélyezés értékre kell állítania. További információ: Git-adattárengedélyek beállítása.
- Az Azure DevOps Import-adattár funkció használatához a TFS 2017 1. vagy újabb frissítésével kell rendelkeznie.
- Ha TFS 2017 RTM vagy korábbi verzióval szeretne adattárat importálni, olvassa el az Adattár manuális importálása Git CLI használatával című témakört.
Feljegyzés
Amikor az adattár importálása befejeződött, az Azure DevOps beállítja az importált adattár alapértelmezett ágát. Ha az importált adattár tartalmaz egy elnevezett master
ágat, akkor az alapértelmezett ágként van beállítva, ellenkező esetben az importált adattár első ága (betűrendben) alapértelmezettként van beállítva.
Importálás új adattárba
Válassza az Adattárak, Fájlok lehetőséget.
Az adattár legördülő menüjében válassza az Adattár importálása lehetőséget.
Ha a forrásadattár nyilvánosan elérhető, csak adja meg a forrásadattár klón URL-címét és az új Git-adattár nevét.
Ha a forrásadattár privát, de alapszintű hitelesítéssel (felhasználónév-jelszó, személyes hozzáférési jogkivonat stb.) érhető el, válassza az Engedélyezés megkövetelése lehetőséget, és adja meg a hitelesítő adatait. Az SSH-hitelesítés nem támogatott, de manuálisan importálhat egy SSH-hitelesítést használó adattárat az adattár manuális importálása a Git CLI használatával történő importálásának lépéseit követve.
Importálás meglévő üres adattárba
Az üres Git-adattár Fájlok lapján válassza az Importálás lehetőséget, és adja meg a klón URL-címét. Hitelesítő adatokat kell megadnia, ha a forrásadattár hitelesítést igényel.
Feljegyzés
Az importálási funkció letiltja a véglegesítési megjegyzésben említett munkaelemek automatikus csatolását, mivel előfordulhat, hogy a célprojekt munkaelem-azonosítói nem azonosak a forrásprojektben lévőkkel. A véglegesítésben említett munkaelemek automatikus csatolása újra engedélyezhető a Beállítások, a Verziókövetés, az adattár kiválasztása és a Beállítások lehetőség választásával. A véglegesítések munkahelyi elemekkel való összekapcsolásával kapcsolatos további információkért lásd : Munkaelemek csatolása véglegesítésekhez
Adattár manuális importálása az az repos parancssori felületének használatával
Az az repos import használatával importálhat egy adattárat az Azure DevOps-projektbe.
Feljegyzés
Először létre kell hoznia az adattárat az Azure DevOpsban, mielőtt importálhat egy Git-adattárat. Emellett a létrehozott adattárnak üresnek kell lennie. Adattár létrehozásához lásd : Git-adattár létrehozása az Azure-adattárakban.
az repos import create --git-source-url
[--detect {false, true}]
[--git-service-endpoint-id]
[--org]
[--project]
[--repository]
[--requires-authorization]
[--subscription]
[--user-name]
Paraméterek
Paraméter | Leírás |
---|---|
git-source-url |
Szükséges. Az importálni kívánt forrás git-adattár URL-címe. |
detect |
Opcionális. Automatikusan észleli a szervezetet. Elfogadott értékek: false , true . |
git-service-endpoint-id |
Opcionális. Szolgáltatásvégpont a külső végponthoz való csatlakozáshoz. |
org , organization |
Azure DevOps-szervezet URL-címe. Az alapértelmezett szervezet konfigurálásához használja a következőt az devops configure -d organization=<ORG_URL> : . Kötelező , ha nincs alapértelmezettként konfigurálva, vagy git-konfiguráción keresztül veszi fel. Példa: https://dev.azure.com/MyOrganizationName/ . |
project , p |
A projekt neve vagy azonosítója. Az alapértelmezett projektet konfigurálhatja a következővel az devops configure -d project=<NAME_OR_ID> : . Kötelező , ha nincs alapértelmezettként konfigurálva, vagy git-konfiguráción keresztül veszi fel. |
repository |
Az importálási kérelem létrehozásához az adattár neve vagy azonosítója. |
requires-authorization |
Jelző, amely jelzi, hogy a forrás git-adattár privát-e. Ha hitelesítésre van szüksége, hozzon létre egy hitelesítési jogkivonatot a forrásadattárban, és állítsa a környezeti változót AZURE_DEVOPS_EXT_GIT_SOURCE_PASSWORD_OR_PAT a jogkivonat értékére. Ezután az importálási kérelem tartalmazza a hitelesítést. |
subscription |
Az előfizetés neve vagy azonosítója. Az alapértelmezett előfizetést konfigurálhatja a következővel az account set -s <NAME_OR_ID> : . |
user-name |
A git-adattár privát állapotának megadásához használandó felhasználónév. |
Példa
Az alábbi parancs importálja a nyilvános fabrikam-open-source adattárat az alapértelmezett konfigurációhoz az devops configure --defaults organization=https://dev.azure.com/fabrikamprime project="Fabrikam Fiber"
tartozó üres Git-adattár fabrikam-open-source elemére.
az repos import create --git-source-url https://github.com/fabrikamprime/fabrikam-open-source --repository fabrikam-open-source
{
"detailedStatus": {
"allSteps": [
"Processing request",
"Analyzing repository objects",
"Storing objects",
"Storing index file",
"Updating references",
"Import completed successfully"
],
"currentStep": 6,
"errorMessage": null
},
"importRequestId": 8,
"parameters": {
"deleteServiceEndpointAfterImportIsDone": null,
"gitSource": {
"overwrite": false,
"url": "https://github.com/fabrikamprime/fabrikam-open-source"
},
"serviceEndpointId": null,
"tfvcSource": null
},
"repository": {
"defaultBranch": null,
"id": "0f6919cd-a4db-4f34-a73f-2354114a66c4",
"isDisabled": false,
"isFork": null,
"name": "new-empty-repo",
"parentRepository": null,
"project": {
"abbreviation": null,
"defaultTeamImageUrl": null,
"description": "Guidance and source control to foster a vibrant ecosystem for Fabrikam Fiber applications and extensions.",
"id": "56af920d-393b-4236-9a07-24439ccaa85c",
"lastUpdateTime": "2021-05-24T21:52:14.95Z",
"name": "Fabrikam Fiber",
"revision": 438023732,
"state": "wellFormed",
"url": "https://dev.azure.com/fabrikamprime/_apis/projects/56af920d-393b-4236-9a07-24439ccaa85c",
"visibility": "private"
},
"remoteUrl": "https://fabrikamprime@dev.azure.com/fabrikamprime/Fabrikam%20Fiber/_git/fabrikam-open-source",
"size": 12477,
"sshUrl": "git@ssh.dev.azure.com:v3/kelliott/Fabrikam%20Fiber/new-empty-repo",
"url": "https://dev.azure.com/fabrikamprime/56af920d-393b-4236-9a07-24439ccaa85c/_apis/git/repositories/0f6919cd-a4db-4f34-a73f-2354114a66c4",
"validRemoteUrls": null,
"webUrl": "https://dev.azure.com/fabrikamprime/Fabrikam%20Fiber/_git/fabrikam-open-source"
},
"status": "completed",
"url": "https://dev.azure.com/fabrikamprime/Fabrikam%20Fiber/_apis/git/repositories/0f6919cd-a4db-4f34-a73f-2354114a66c4/importRequests/8"
}
Adattár manuális importálása a git parancssori felületének használatával
Az importálási adattár szolgáltatás a TFS 2017 1. frissítésében lett bevezetve. Ha TFS 2017 RTM-et vagy korábbi verziót használ, az alábbi lépésekkel manuálisan importálhat adattárat a TFS-be. Ezeket a lépéseket követve manuálisan is importálhat adattárat egy Azure DevOps Services-adattárba úgy, hogy a TFS-t az Azure-adattárakra cseréli az alábbi lépésekben.
Klónozza a forrásadattárat a számítógép egy ideiglenes mappájába a
bare
következő parancssori példában látható módon, majd lépjen az adattár mappájába. A beállítássalbare
történő klónozáskor a mappa neve tartalmazza az.git
utótagot. Ebben a példábanhttps://github.com/contoso/old-contoso-repo.git
a manuálisan importálandó forrásadattárat mutatjuk be.git clone --bare https://github.com/contoso/old-contoso-repo.git cd old-contoso-repo.git
Hozzon létre egy céladattárat a TFS 2017 RTM használatával, és jegyezze fel a klón URL-címét. Ebben a példában
https://dev.azure.com/contoso-ltd/MyFirstProject/_git/new-contoso-repo
az új céladattár URL-címe látható.Futtassa a következő parancsot a forrás-adattár céltárba másolásához.
git push --mirror https://dev.azure.com/contoso-ltd/MyFirstProject/_git/new-contoso-repo
Figyelmeztetés
A használat
--mirror
felülírja a céladattár összes ágát, beleértve a forrásadattárban nem szereplő ágak törlését is.Ha a forrásadattár LFS-objektumokkal rendelkezik, kérje le őket, és másolja őket a forrástárból a céltárba.
git lfs fetch origin --all git lfs push --all https://dev.azure.com/contoso-ltd/MyFirstProject/_git/new-contoso-repo
Törölje az ideiglenes mappát az alábbi parancsok futtatásával.
cd .. rm -rf old-contoso-repo.git
Gyakori kérdések
Bár az importálás többnyire sikeres, a következő feltételek problémákat okozhatnak.
- Mi a teendő, ha a forrásadattár kéttényezős hitelesítés mögött áll?
- Mi a teendő, ha a forrásadattár nem támogatja a multi_ack?
- Importálhatok a Team Foundation Server korábbi verzióiból?
- Használhatok MSA-alapú hitelesítő adatokat?
- Importálhatok a TFVC-ből?
- Mi történik, ha a forrásadattár git LFS-objektumokat tartalmaz?
Mi a teendő, ha a forrásadattár kéttényezős hitelesítés mögött áll?
Az importálási szolgáltatás REST API-kat használ az importálás ellenőrzéséhez és aktiválásához, és nem működik közvetlenül olyan adattárakkal, amelyek kéttényezős hitelesítést igényelnek. A Legtöbb Git-szolgáltató, például a GitHub és az Azure DevOps Services támogatja a személyes jogkivonatokat, amelyek az importálási szolgáltatáshoz adhatók.
Mi a teendő, ha a forrásadattár nem támogatja a multi_ack?
Az importálási szolgáltatás a Git-protokoll multi_ack képességét használja az importálás során. Ha a forrásadattár nem biztosítja ezt a képességet, az importálási szolgáltatás nem tud importálni az adott forrásból. Ez a hiba akkor fordulhat elő, ha importálási kérelmet hoz létre, vagy amíg az importálás folyamatban van.
Importálhatok a Team Foundation Server korábbi verzióiból?
Ha a forrás Git-adattár a TFS 2017 RTM-nél korábbi TFS-verzióban található, akkor az importálás sikertelen lesz. Ez azért történik, mert a szerződés nem egyezik a legújabb Azure DevOps Services/TFS és a TFS 2017 előtti RTM-verziói között.
Használhatok MSA-alapú hitelesítő adatokat?
Sajnos az MSA(Microsoft-fiók, korábbi nevén Live ID) alapú hitelesítő adatok nem fognak működni. Az importálási szolgáltatás alapszintű hitelesítésre támaszkodik a forrásadattárral való kommunikációhoz. Ha a használt felhasználónév/jelszó nem alapszintű hitelesítés, akkor a hitelesítés sikertelen lesz, és az importálás sikertelen lesz. Az egyik módja annak, hogy ellenőrizze, hogy a használt felhasználónév/jelszó alapszintű-e, vagy sem, ha megpróbálja a Git használatával klónozni az adattárat az alábbi formátum használatával
git clone https://<<username>>:<<password>>@<<remaining clone Url>>
Importálhatok a TFVC-ből?
A kódot áttelepítheti egy meglévő TFVC-adattárból egy új Git-adattárba ugyanabban a fiókban. A Gitbe való migrálás számos előnnyel jár, de nagy TFVC-adattárak és csapatok számára is fontos folyamat. A központosított verziókövetési rendszerek, például a TFVC, alapvető módon viselkednek, mint a Git. A kapcsoló sokkal több, mint új parancsok elsajátítása. Ez egy zavaró változás, amely gondos tervezést igényel. További információ: Importálás TFVC-ből Gitbe.
Mi történik, ha a forrásadattár git LFS-objektumokat tartalmaz?
A Git importálása nem fogja importálni a Git LFS-objektumokat.
Az LFS-objektumok a következő lépésekkel helyezhetők át:
- Importálja az adattárat az adattár importálási funkciójával az Azure DevOpsba. Ez átmásolja az összes Git-objektumot a forrásból az Azure DevOpsba (ez az LFS-mutatókat is importálja, amelyek Git-objektumok, de nem az LFS-fájlok)
Ha át szeretne lépni az LFS-fájlokon (ugyanabban a mezőben Git.exe és LFS-ügyfélre is szüksége lesz, valamint hozzáférésre lesz szüksége a forrásadattárhoz és a céladattárhoz is)
- Klónozza az importált adattárat az Azure DevOpsból a helyi rendszerbe, a klónozás működni fog, de sikertelen lesz az LFS-fájlok kivétele során
- Adja hozzá a forrásadattárat távoliként (például forrásként)
- Végrehajtás
git lfs fetch source --all
(ez az összes LFS-fájlt átviszi a forrásból a helyi adattárba) - Feltéve, hogy a cél VSTS-adattár a "cél" távoli
- Előad
git lfs push target --all
Importálhatok frissítéseket, ha a forrás később megváltozik?
Az importálási szolgáltatás egy teljes adattár kezdeti importálására szolgál. A későbbi módosítások tükrözéséhez szüksége lesz az adattár helyi klónjára, amely a forrásra és a célra is beállított távoli elemet tartalmazza.
A módosításokat az alábbi parancsokkal szinkronizálhatja.
Az Azure-adattárak importálását az eredeti adattárként origin
upstream
fogjuk kezelni.
git clone --bare <Azure-Repos-clone-URL>.git
cd <name-of-repo>
git remote add --mirror=fetch upstream <original-repo-URL>
git fetch upstream --tags
git push origin --all