Share via


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 Project Rendszergazda istrators biztonsági csoport tagjának kell lennie, vagy engedélyeznie kell a Git projektszintű létrehozási adattár engedélyét. 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 Project Rendszergazda istrators biztonsági csoport tagjának kell lennie, vagy engedélyeznie kell a Git projektszintű létrehozási adattár engedélyét. 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

  1. Válassza az Adattárak, Fájlok lehetőséget.

    Az ágak megtekintése

  2. Az adattár legördülő menüjében válassza az Adattár importálása lehetőséget.

    Adattárak kezelése

  3. 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.

    Adattár importálása párbeszédpanel

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.

Adattár importálása meglévő adattárba

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 Gépház, 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.

  1. 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ással bare történő klónozáskor a mappa neve tartalmazza az .git utótagot. Ebben a példában https://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
    
  2. 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ó.

  3. 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.

  4. 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
    
  5. 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?

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
  • Végre 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 originupstreamfogjuk 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

Következő lépések