Git-műveletek futtatása a Databricks Git-mappákon (Adattárak)

A cikk bemutatja, hogyan hajthat végre gyakori Git-műveleteket a Databricks-munkaterületen Git-mappák használatával, beleértve a klónozást, az elágaztatást, a véglegesítést és a leküldést.

Távoli Git-adattárhoz csatlakoztatott adattár klónozása

  1. Az oldalsávon válassza a Munkaterület , majd a böngésző lehetőséget arra a mappára, ahol létre szeretné hozni a Git-adattár klónozását.

  2. Kattintson a munkaterület jobb felső részén található Hozzáadás elemtől jobbra található lefelé mutató nyílra, és válassza a Git mappát a legördülő menüből.

    Tárház felhasználói felületének hozzáadása.

  3. A Git mappa létrehozása párbeszédpanelen adja meg a következő információkat:

    • A klónozni kívánt Git-adattár URL-címe https://example.com/organization/project.git
    • A klónozni kívánt adattár Git-szolgáltatója. A lehetőségek közé tartozik a GitHub, a GitHub Enterprise, a GitLab és az Azure DevOps (Azure Repos)
    • A munkaterület azon mappájának neve, amely a klónozott adattár tartalmát fogja tartalmazni
    • Azt határozza meg, hogy használ-e ritka kivételt, amelyben csak a kúpmintával megadott alkönyvtárak vannak klónozva

    Klónozás a Git-mappa felhasználói felületéről.

Ebben a szakaszban lehetősége van arra, hogy csak az adattár könyvtárainak egy részét klónozza ritka kivétellel. Ez akkor hasznos, ha az adattár nagyobb, mint a Databricks által támogatott korlátok

  1. Kattintson a Git-mappa létrehozása elemre. A távoli adattár tartalma a Databricks-adattárba van klónozva, és a munkaterületen keresztül megkezdheti velük a munkát támogatott Git-műveletek használatával.

Ajánlott eljárás: Együttműködés Git-mappákban

A Databricks Git-mappák hatékonyan működnek beágyazott Git-ügyfelekként a munkaterületen, így a felhasználók Együttműködhetnek a Git-alapú forráskövetés és verziószámozás használatával. A csapatmunka hatékonyabbá tétele érdekében használjon egy különálló Databricks Git-mappát, amely egy távoli Git-adattárhoz van hozzárendelve minden olyan felhasználó számára, aki a saját fejlesztési ágában dolgozik. Bár több felhasználó is közreműködhet tartalommal a Git-mappákban, csak egy kijelölt felhasználó hajthat végre Git-műveleteket, például lekéréses, leküldéses, véglegesítési és ágváltási műveleteket. Ha több felhasználó hajt végre Git-műveletet egy Git-mappában, az ágkezelés nehézkessé és hibalehetőséggé válhat, például amikor egy felhasználó átvált egy ágat, és véletlenül az adott mappa összes többi felhasználója számára átváltja azt.

Fontos

Jelenleg nem használhatja a Git CLI-t Git-műveletek Git-mappában való végrehajtásához. Ha egy Git-adattárat klónozza a parancssori felület használatával egy fürt webes terminálján keresztül, a fájlok nem jelennek meg az Azure Databricks felhasználói felületén.

A Git párbeszédpanel elérése

A Git párbeszédpanelt jegyzetfüzetből vagy a Databricks Git mappaböngészőből érheti el.

  • Egy jegyzetfüzetben kattintson az aktuális Git-ágat azonosító jegyzetfüzet neve melletti gombra.

    A Git párbeszédpanel gombja a jegyzetfüzetben.

  • A Databricks Git mappaböngészőben kattintson az adattár nevének jobb oldalán található gombra. Kattintson a jobb gombbal az adattár nevére, és válassza a Git... lehetőséget a menüből.

    A Git párbeszédpanel gombja és a Git menü az adattárböngészőben.

Megjelenik egy teljes képernyős párbeszédpanel, ahol Git-műveleteket hajthat végre.

A Git-műveletek Databricks-munkaterületen való végrehajtásához használt párbeszédpanel.

  1. Az aktuális munkaág. Itt más ágakat is kijelölhet. Ha más felhasználók is hozzáférnek ehhez a Git-mappához, az ág módosítása szintén módosítja az ágat, ha ugyanazon a munkaterületen osztoznak. A probléma elkerülése érdekében tekintse meg a javasolt ajánlott eljárásokat .
  2. Az új ág létrehozására vonatkozó gomb.
  3. Az aktuális ágba bejelentkezett fájlegységek és almappák listája.
  4. Egy gomb, amely a Git-szolgáltatóhoz viszi, és megjeleníti az aktuális ágelőzményeket.
  5. A távoli Git-adattárból tartalmat lekérő gomb.
  6. Szövegmező, amelyben véglegesítési üzenetet és opcionális bővített leírást ad a módosításokhoz.
  7. A munka munkaágba való véglegesítéséhez és a frissített ág távoli Git-adattárba való leküldéséhez használható gomb.

Kebab menü A jobb felső sarokban található kebabra kattintva további Git-ágműveletek közül választhat, például egy kemény visszaállítás, egy egyesítés vagy egy újrabázis közül.

Az ágműveletek Git-mappa párbeszédében található legördülő menü.

Itt végezhet Git-műveleteket a munkaterület Git-mappájában. A felhasználói felületen bemutatott Git-műveletekre korlátozódik.

Új ág létrehozása

A Git párbeszédpanelen létrehozhat egy új ágat egy meglévő ág alapján:

Git párbeszédpanel új ága.

Váltás másik ágra

Másik ágra válthat (kivétel) a Git párbeszédpanel ág legördülő menüjével:

A Git párbeszédpanel váltása másik ágra

Fontos

Miután kivesz egy ágat egy Git-mappából, mindig előfordulhat, hogy valaki más törli az ágat a távoli Git-adattárból. Ha egy ágat töröl a távoli adattárból, a helyi verzió legfeljebb 7 napig maradhat a társított Git-mappában. A Databricks helyi ágai nem törölhetők, ezért ha el kell távolítania őket, akkor az adattárat is törölnie kell és újra el kell zárnia.

Módosítások véglegesítése és leküldése a távoli Git-adattárba

Ha új jegyzetfüzeteket vagy fájlokat adott hozzá, vagy módosította a meglévő jegyzetfüzeteket vagy fájlokat, a Git mappa felhasználói felülete kiemeli a módosításokat.

Git párbeszédpanel kiemelt módosításokkal.

Adjon hozzá egy kötelező véglegesítési üzenetet a módosításokhoz, majd a Véglegesítés > Leküldés gombra kattintva küldje el ezeket a módosításokat a távoli Git-adattárba.

Ha nincs engedélye arra, hogy véglegesítse az alapértelmezett ágat (például az main ágat), hozzon létre egy új ágat, és a Git-szolgáltató felületével hozzon létre egy lekéréses kérelmet (PR) az alapértelmezett ágba való egyesítéshez.

Feljegyzés

  • A jegyzetfüzet-kimenetek alapértelmezés szerint nem szerepelnek a véglegesítésekben, ha a jegyzetfüzetek forrásfájlformátumokban vannak mentve (.py, .scala, , .sql). .r Az IPYNB formátumot használó jegyzetfüzet-kimenetek véglegesítéséről további információt az IPYNB-jegyzetfüzet kimeneti összetevő-véglegesítéseinek szabályozása című témakörben talál .

Módosítások lekérése a távoli Git-adattárból

A távoli Git-adattár módosításainak lekéréséhez kattintson a Lekérés gombra a Git-műveletek párbeszédpanelen. A jegyzetfüzetek és más fájlok automatikusan frissülnek a távoli Git-adattár legújabb verziójára. Ha a távoli adattárból lekért módosítások ütköznek a Databricks helyi módosításaival, meg kell oldania az egyesítési ütközéseket.

Fontos

A felsőbb rétegbe beolvasható Git-műveletek törlik a jegyzetfüzet állapotát. További információ: A bejövő módosítások törlik a jegyzetfüzet állapotát.

Ágak egyesítése

A Git Merge műveletet a Git-műveletek párbeszédpanel jobb felső sarkában található kebabból Kebab menü kiválasztva érheti el.

A Databricks Git-mappák egyesítési függvénye az egyik ágat egy másikba egyesíti a használatával git merge. Az egyesítési művelet az egyik ág véglegesítési előzményeinek egy másik ágba való összevonására; az egyetlen különbség az a stratégia, amelyet ennek eléréséhez használ. A Git kezdőknek javasoljuk az egyesítést (újrabázison keresztül), mert nem igényel kényszerített leküldést egy ágba, ezért nem írja át a véglegesítési előzményeket.

A véglegesítések egyesítése és újbóli egyeztetése közötti különbségekről az Atlassian dokumentációjában olvashat bővebben.

  • Ha egyesítési ütközés van, oldja fel a Git-mappák felhasználói felületén.
  • Ha nincs ütközés, a rendszer leküldi az egyesítést a távoli Git-adattárba a használatával git push.

Rebase ág egy másik ágon

A Git Rebase műveletet a Git-műveletek párbeszédpanel jobb felső sarkában található kebab menüből választva Kebab menü érheti el.

A újbóli módosítás megváltoztatja egy ág véglegesítési előzményeit. Például git mergeaz git rebase egyik ág módosításait integrálja egy másikba. A Rebase a következőket végzi el:

  1. Menti az aktuális ág véglegesítéseit egy ideiglenes területre.
  2. Alaphelyzetbe állítja az aktuális ágat a kiválasztott ágra.
  3. Alkalmazza újra az aktuális ágon korábban mentett egyes véglegesítéseket, ami lineáris előzményt eredményez, amely egyesíti a két ág módosításait.

Az újrapróbálkozás részletes magyarázatát a Git Rebase című témakörben talál.

Figyelmeztetés

Az újrabázis használata verziószámozási problémákat okozhat az ugyanabban az adattárban dolgozó közreműködők számára.

Gyakori munkafolyamat egy szolgáltatáság újrabázisa a fő ágon.

Ág újrabázisa egy másik ágon:

  1. A Git-mappák felhasználói felületén található Ág menüben válassza ki az újrabázishoz használni kívánt ágat.

  2. Válassza a Kebab menü Rebase elemét.

    Git rebase függvény a kebab menüben.

  3. Válassza ki azt az ágat, amelyen újra szeretné helyezni az adatbázist.

    Az újrabázis művelet az itt kiválasztott ág módosításait integrálja az aktuális ágba.

A Databricks Git-mappák futnak git commit , és git push --force frissítik a távoli Git-adattárat.

Egyesítési ütközések feloldása

Egyesítési ütközések akkor fordulnak elő, ha 2 vagy több Git-felhasználó egy fájl ugyanazon soraiban lévő módosításokat egy közös ágba próbálja egyesíteni, és a Git nem tudja kiválasztani a megfelelő módosításokat. Egyesítési ütközések akkor is előfordulhatnak, ha egy felhasználó megkísérli lekérni vagy egyesíteni egy másik ág módosításait egy nem véglegesített módosításokkal rendelkező ágba.

Animált GIF, amely egy git-lekérés során nem véglegesített módosításokból eredő gyakori egyesítési ütközést jelenít meg

Ha egy művelet, például a lekérés, az újrabázis vagy az egyesítés egyesítési ütközést okoz, a Git-mappák felhasználói felülete megjeleníti az ütközéseket tartalmazó fájlok listáját és az ütközések feloldásának lehetőségeit.

Két elsődleges lehetőség közül választhat:

  • Az ütközés feloldásához használja a Git-mappák felhasználói felületét.
  • Megszakítja a Git-műveletet, manuálisan elveti az ütköző fájl módosításait, és próbálkozzon újra a Git-művelettel.

A Databricks Git mappa felhasználói felületén egyesítési ütközést megjelenítő animált GIF

Ha az egyesítési ütközéseket a Git-mappák felhasználói felületével oldja fel, választania kell a szerkesztőben az ütközések manuális feloldása vagy az összes bejövő vagy aktuális módosítás megtartása között.

Az összes aktuális vagy bejövő módosítás megtartása

Ha tudja, hogy csak az összes aktuális vagy bejövő módosítást szeretné megtartani, kattintson a fájlnév jobb oldalán található kebabra a jegyzetfüzet ablaktábláján, és válassza az Összes aktuális módosítás megtartása vagy Az összes bejövő módosítás megtartása lehetőséget. Kattintson az azonos címkével ellátott gombra a módosítások véglegesítéséhez és az ütközés feloldásához.

A Databricks-jegyzetfüzet felhasználói felületének panelje, amelyen az egyesítési ütközések feloldásának legördülő beállításai láthatók

Tipp.

Nem világos, hogy melyik lehetőséget válassza? Az egyes beállítások színe megegyezik a fájlban megtartott kódmódosításokkal.

Ütközések manuális feloldása

A manuális ütközésfeloldással meghatározhatja, hogy az ütköző sorok közül melyik legyen elfogadva az egyesítésben. Egyesítési ütközések esetén az ütközést úgy oldhatja fel, hogy közvetlenül szerkeszti a fájl tartalmát az ütközésekkel.

Animált GIF, amely egy egyesítési ütközés manuális feloldását mutatja

Az ütközés feloldásához jelölje ki azokat a kódsorokat, amelyeket meg szeretne őrizni és törölni, beleértve a Git egyesítési ütközésjelölőit is. Ha elkészült, válassza a Megjelölés feloldvaként lehetőséget.

Ha úgy dönt, hogy helytelen döntéseket hozott az egyesítési ütközések feloldása során, a megszakítás gombra kattintva megszakíthatja a folyamatot, és visszavonhat mindent. Az összes ütközés feloldása után kattintson az Egyesítés folytatása vagy az Újrabázis folytatása lehetőségre az ütközés feloldásához és a művelet befejezéséhez.

Git reset

A Databricks Git-mappákban egy Gitet reset az Azure Databricks felhasználói felületén hajthat végre. A Git alaphelyzetbe állítása a Databricks Git-mappákban egyenértékű a git reset --hard következővel git push --force: .

A Git reset az ág tartalmát és előzményeit egy másik ág legújabb állapotára cseréli. Ezt akkor használhatja, ha a módosítások ütköznek a felső ággal, és nem bánja, ha elveszíti ezeket a módosításokat a felső ágra való visszaállításkor. További információ a gitről reset –hard.

Visszaállítás felsőbb rétegbeli (távoli) ágra

Ebben git reset a forgatókönyvben:

  • A kijelölt ágat (például feature_a) egy másik ágra (például main) állítja vissza.
  • A felső (távoli) ágat is alaphelyzetbe állítja a főre feature_a .

Fontos

Az alaphelyzetbe állításkor az ág helyi és távoli verziójában is elveszíti az összes nem véglegesített és véglegesített módosítást.

Ág visszaállítása távoli ágra:

  1. Az Ág menü Git-mappák felhasználói felületén válassza ki az alaphelyzetbe állítani kívánt ágat.

    Ágválasztó a Git-mappák felhasználói felületén.

  2. Válassza az Alaphelyzetbe állítás lehetőséget a kebab menüben.

    A Git alaphelyzetbe állítási művelete a kebab menüben.

  3. Válassza ki az alaphelyzetbe állítani kívánt ágat.

    Git reset –hard dialog.

Ritka kivétel mód konfigurálása

A ritka kivétel egy ügyféloldali beállítás, amely lehetővé teszi, hogy a Databricksben a távoli adattárak címtárainak csak egy részhalmazával klónozhassa és működjön együtt. Ez különösen akkor hasznos, ha az adattár mérete meghaladja a Databricks által támogatott korlátokat.

Új adattár hozzáadásakor (klónozáskor) használhatja a Ritka kivétel módot.

  1. A Git hozzáadása párbeszédpanelen nyissa meg a Speciális elemet.

  2. Válassza a Ritka kivétel módot.

    Ritka kivétel lehetőség a Git-mappa hozzáadása párbeszédpanelen.

  3. A Cone-minták mezőben adja meg a kívánt kúp kivételi mintákat. Több minta elválasztása sortörések szerint.

Jelenleg nem tilthatja le az Azure Databricks-adattár ritka kivételét.

A kúpminták működése

Ha szeretné megtudni, hogyan működik a kúpminta a ritka kivétel módban, tekintse meg a távoli adattár szerkezetét ábrázoló alábbi ábrát.

Távoli adattárszerkezet ritka kivétel nélkül.

Ha a Ritka kivétel módot választja, de nem ad meg kúpmintát, a rendszer az alapértelmezett kúpmintát alkalmazza. Ez csak a gyökérfájlokra és alkönyvtárakra vonatkozik, így az adattár struktúrája a következő:

Ritka kivétel: alapértelmezett kúpminta.

Ha a ritka kivételi kúpmintát parent/child/grandchild úgy állítja be, hogy a könyvtár összes tartalma rekurzívan szerepel.grandchild A fájlokat a rendszer azonnal tartalmazza a , /parent/child és a /parentgyökérkönyvtárban is. Tekintse meg a könyvtárszerkezetet az alábbi ábrán:

Ritka kivétel: Adja meg a szülő-unoka-gyermek mappa kúp mintáját.

Sortörésekkel elválasztott mintákat is hozzáadhat.

Feljegyzés

A kizárási viselkedések (!) nem támogatottak a Git Cone-minta szintaxisában.

Ritka kivétel beállításainak módosítása

Az adattár létrehozása után a ritka kivételi kúp minta szerkeszthető Gépház > Speciális kúpmintákból.>

Figyelje meg a következő viselkedést:

  • Ha eltávolít egy mappát a kúpmintából, eltávolítja azt a Databricksből, ha nincsenek véglegesített módosítások.

  • Ha hozzáad egy mappát a ritka pénztári kúpminta szerkesztésével, további lekérés nélkül hozzáadja azt a Databrickshez.

  • A ritka kivételi minták nem módosíthatók úgy, hogy eltávolítsák a mappát, ha a mappában nem véglegesített módosítások vannak.

    A felhasználó például szerkeszt egy fájlt egy mappában, és nem véglegesíti a módosításokat. Ezután megpróbálja módosítani a ritka kivételi mintát, hogy ne tartalmazza ezt a mappát. Ebben az esetben a rendszer elfogadja a mintát, de a tényleges mappa nem törlődik. Vissza kell állítania a mintát, hogy belefoglalja a mappát, véglegesítse a módosításokat, majd újra alkalmazza az új mintát.

Feljegyzés

Nem tilthatja le a ritka kivételt egy olyan adattár esetében, amely engedélyezve van a Ritka kivétel móddal.

Módosítások végrehajtása és leküldése ritka kivétellel

Szerkesztheti a meglévő fájlokat, véglegesítheti és leküldheti őket a Git mappából. Új fájlmappák létrehozásakor vegye fel őket az adattárhoz megadott kúpmintára.

A kúpmintán kívüli új mappa belefoglalása hibát eredményez a véglegesítési és leküldési művelet során. A hiba kijavításához szerkessze a kúpmintát, hogy tartalmazza a véglegesíteni és leküldni kívánt új mappát.

Adattár konfigurációs fájljának mintái

A véglegesítési kimenetek konfigurációs fájlja a gitignore-mintákhoz hasonló mintákat használ, és a következőket teszi:

  • A pozitív minták lehetővé teszik a kimenetek felvételét az egyező jegyzetfüzetekhez.
  • A negatív minták letiltják az egyező jegyzetfüzetek kimenetbe való felvételét.
  • A minták kiértékelése az összes jegyzetfüzet esetében történik.
  • A rendszer figyelmen kívül hagyja az .ipynb érvénytelen elérési utakat vagy a jegyzetfüzetekre nem feloldó elérési utakat.

Pozitív minta: A jegyzetfüzet elérési útjának folder/innerfolder/notebook.ipynbkimeneteit a következő mintákkal használhatja:

**/*
folder/**
folder/innerfolder/note*

Negatív minta: Ha ki szeretné zárni a jegyzetfüzet kimeneteit, ellenőrizze, hogy a pozitív minták egyike sem egyezik-e meg, vagy adjon-e hozzá negatív mintát a konfigurációs fájl megfelelő helyén. A negatív (kizárási) minták a következővel !kezdődnek:

!folder/innerfolder/*.ipynb
!folder/**/*.ipynb
!**/notebook.ipynb

Ritka kivétel korlátozása

A ritka kivétel jelenleg nem működik a 4 GB-nál nagyobb Méretű Azure DevOps-adattárak esetében.

Adattár hozzáadása és távoli csatlakozás később

A Git-mappák programozott kezeléséhez és kezeléséhez használja a Git-mappák REST API-t.