Spouštění operací Gitu ve složkách Git Databricks (Repos)

Tento článek popisuje, jak provádět běžné operace Gitu v pracovním prostoru Databricks pomocí složek Git, včetně klonování, větvení, potvrzení a nasdílení změn.

Klonování úložiště připojeného ke vzdálenému úložišti Git

  1. Na bočním panelu vyberte Pracovní prostor a pak přejděte do složky, do které chcete vytvořit klon úložiště Git.

  2. V pravém horním rohu pracovního prostoru klikněte na šipku dolů a v rozevíracím seznamu vyberte složku Git.

    Přidejte uživatelské rozhraní úložiště.

  3. V dialogovém okně Vytvořit složku Git zadejte následující informace:

    • Adresa URL úložiště Git, které chcete klonovat, ve formátu https://example.com/organization/project.git
    • Zprostředkovatel Gitu pro úložiště, které chcete klonovat. Mezi možnosti patří GitHub, GitHub Enterprise, GitLab a Azure DevOps (Azure Repos).
    • Název složky ve vašem pracovním prostoru, který bude obsahovat obsah klonovaného úložiště
    • Zda použijete řídké pokladny, ve kterých se klonují pouze podadresáře zadané pomocí vzoru kužele

    Klonování z uživatelského rozhraní složky Git

V této fázi máte možnost klonovat pouze podmnožinu adresářů úložiště pomocí řídké rezervace. To je užitečné, pokud je úložiště větší než podporované limity Databricks.

  1. Klikněte na Vytvořit složku Git. Obsah vzdáleného úložiště se naklonuje do úložiště Databricks a můžete s nimi začít pracovat pomocí podporovaných operací Gitu v pracovním prostoru.

Osvědčený postup: Spolupráce ve složkách Gitu

Složky Git Databricks se ve vašem pracovním prostoru chovají jako vložení klienti Gitu, aby uživatelé mohli spolupracovat pomocí správy zdrojového kódu a správy verzí založených na Gitu. Pokud chcete, aby týmová spolupráce byla efektivnější, použijte samostatnou složku Git Databricks namapovanou na vzdálené úložiště Git pro každého uživatele, který pracuje ve své vlastní vývojové větvi . I když obsah do složky Gitu může přispívat více uživatelů, měl by provádět operace Gitu, jako je pull, push, commit a branch switching. Pokud více uživatelů provádí operace Gitu ve složce Git, může být správa větví obtížná a náchylná k chybám, například když uživatel přepne větev a neúmyslně ji přepne pro všechny ostatní uživatele této složky.

Důležité

V současné době nemůžete pomocí rozhraní příkazového řádku Git provádět operace Gitu ve složce Git. Pokud naklonujete úložiště Git pomocí rozhraní příkazového řádku prostřednictvím webového terminálu clusteru, soubory se nezobrazí v uživatelském rozhraní Azure Databricks.

Přístup k dialogovému okně Git

K dialogu Git se dostanete z poznámkového bloku nebo z prohlížeče složek Git Databricks.

  • V poznámkovém bloku klikněte na tlačítko vedle názvu poznámkového bloku, který identifikuje aktuální větev Gitu.

    Tlačítko dialogového okna Git v poznámkovém bloku

  • V prohlížeči složek Git Databricks klikněte na tlačítko napravo od názvu úložiště. Můžete také kliknout pravým tlačítkem na název úložiště a vybrat Git... z nabídky.

    Git dialog button and Git menu in repo browser.

Zobrazí se dialogové okno na celé obrazovce, kde můžete provádět operace Gitu.

Dialogové okno sloužící k provádění operací Gitu v pracovním prostoru Databricks.

  1. Vaše aktuální pracovní větev. Tady můžete vybrat další větve. Pokud mají k této složce Git přístup i jiní uživatelé, změna větve pro ně také změní větev, pokud sdílejí stejný pracovní prostor. Podívejte se na doporučený osvědčený postup , abyste se tomuto problému vyhnuli.
  2. Tlačítko pro vytvoření nové větve
  3. Seznam prostředků souborů a podsložek vrácených do aktuální větve
  4. Tlačítko, které vás přenese na svého poskytovatele Gitu a zobrazí aktuální historii větví.
  5. Tlačítko pro načtení obsahu ze vzdáleného úložiště Git.
  6. Textové pole, do kterého přidáte zprávu potvrzení a volitelný rozšířený popis změn.
  7. Tlačítko pro potvrzení vaší práce do pracovní větve a nasdílení aktualizované větve do vzdáleného úložiště Git.

Kliknutím na Nabídka Kebab kebab v pravém horním rohu si můžete vybrat z dalších operací gitové větve, jako je například pevné resetování, sloučení nebo změna základu.

Rozevírací nabídka v dialogovém okně složky Git pro operace větví

Toto je váš domov pro provádění operací Gitu ve složce Git pracovního prostoru. Jste omezeni na operace Gitu uvedené v uživatelském rozhraní.

Vytvořit novou větev.

Novou větev můžete vytvořit na základě existující větve z dialogového okna Git:

Nová větev dialogového okna Gitu

Přepnutí na jinou větev

Pomocí rozevíracího seznamu větve v dialogovém okně Git můžete přepnout na jinou větev (pokladnu):

Přepnutí dialogového okna Git na jinou větev

Důležité

Po rezervaci větve ve složce Git existuje vždy šance, že větev může někdo jiný odstranit ve vzdáleném úložišti Git. Pokud je větev odstraněna ve vzdáleném úložišti, může místní verze zůstat v přidružené složce Gitu po dobu až 7 dnů. Místní větve v Databricks nelze odstranit, takže pokud je musíte odebrat, musíte také odstranit a znovu vytvořit úložiště.

Potvrzení a nasdílení změn do vzdáleného úložiště Git

Když přidáte nové poznámkové bloky nebo soubory nebo provedete změny stávajících poznámkových bloků nebo souborů, uživatelské rozhraní složky Git tyto změny zvýrazní.

Dialogové okno Git se zvýrazněnými změnami

Přidejte pro změny požadovanou zprávu potvrzení a kliknutím na Potvrdit a nasdílení změn odešlete do vzdáleného úložiště Git.

Pokud nemáte oprávnění k potvrzení do výchozí větve (například main větve), vytvořte novou větev a pomocí rozhraní poskytovatele Git vytvořte žádost o přijetí změn (PR) a sloučíte ji s výchozí větví.

Poznámka:

Přijetí změn ze vzdáleného úložiště Git

Pokud chcete vyžádat změny ze vzdáleného úložiště Git, klikněte v dialogovém okně Operace Gitu na Vyžádat . Poznámkové bloky a další soubory se automaticky aktualizují na nejnovější verzi ve vzdáleném úložišti Git. Pokud změny načítané ze vzdáleného úložiště kolidují s místními změnami v Databricks, musíte vyřešit konflikty při slučování.

Důležité

Operace Gitu, které přetahují upstreamové změny, vymažou stav poznámkového bloku. Další informace najdete v tématu Příchozí změny, které vymažou stav poznámkového bloku.

Sloučení větví

K operaci sloučení Gitu se dostanete tak, že ji vyberete z Nabídka Kebab kebabu v pravém horním rohu dialogového okna operací Gitu.

Funkce sloučení ve složkách Git Databricks sloučí jednu větev do druhé pomocí git merge. Slučovací operace je způsob, jak zkombinovat historii potvrzení z jedné větve do jiné větve; jediným rozdílem je strategie, pomocí které toho dosahuje. Pro začátečníky v Gitu doporučujeme použít sloučení (přes základ), protože nevyžaduje vynucení nasdílení změn do větve, a proto nepřepíše historii potvrzení.

Další informace o rozdílech mezi sloučením a opětovnou korespondencí potvrzení najdete v dokumentaci k tématu Atlassian.

  • Pokud dojde ke konfliktu při sloučení, vyřešte ho v uživatelském rozhraní složek Gitu.
  • Pokud nedojde ke konfliktu, sloučení se odešle do vzdáleného úložiště Git pomocí git push.

Rebase větev v jiné větvi

K operaci Git Rebase se dostanete tak, že ji vyberete z Nabídka Kebab nabídky kebab v pravém horním rohu dialogového okna operací Gitu.

Opětovné vytvoření změn změní historii potvrzení větve. git rebase Podobně jako git mergefunkce integruje změny z jedné větve do druhé. Změna základu provede následující:

  1. Uloží potvrzení v aktuální větvi do dočasné oblasti.
  2. Obnoví aktuální větev na zvolenou větev.
  3. Znovu zobrazí jednotlivá potvrzení, která byla dříve uložena v aktuální větvi, což vede k lineární historii, která kombinuje změny z obou větví.

Podrobné vysvětlení opětovného použití najdete v tématu o opětovném použití Gitu.

Upozorňující

Použití rebase může způsobit problémy se správou verzí pro spolupracovníky pracující ve stejném úložišti.

Běžným pracovním postupem je změna základu větve funkcí v hlavní větvi.

Změna základu větve v jiné větvi:

  1. V nabídce Větev v uživatelském rozhraní složek Git vyberte větev, kterou chcete znovu načíst.

  2. V nabídce kebabu vyberte Rebase .

    Funkce Git rebase v nabídce kebabu

  3. Vyberte větev, u které chcete provést obnovení základu.

    Operace opětovného základu integruje změny z větve, kterou zde zvolíte, do aktuální větve.

Složky Gitu Databricks běží git commit a git push --force aktualizují vzdálené úložiště Git.

Řešení konfliktů při slučování

Ke konfliktům při slučování dochází, když se 2 nebo více uživatelů Gitu pokusí sloučit změny stejných řádků souboru do společné větve a Git nemůže zvolit správné změny, které se mají použít. Ke konfliktům při slučování může dojít také v případě, že se uživatel pokusí vyžádat nebo sloučit změny z jiné větve do větve s nepotvrzenými změnami.

Animovaný obrázek GIF, který zobrazuje běžný konflikt při slučování vyplývající z nepotvrzených změn během přijetí změn gitu

Pokud operace, jako je vyžádání, změna základu nebo sloučení, způsobí konflikt při slučování, uživatelské rozhraní složek Gitu zobrazí seznam souborů s konflikty a možnostmi řešení konfliktů.

Máte dvě primární možnosti:

  • K vyřešení konfliktu použijte uživatelské rozhraní složek Gitu.
  • Přerušte operaci Gitu, ručně zahoďte změny v konfliktní souboru a zkuste operaci Gitu zopakovat.

Animovaný obrázek GIF znázorňující konflikt při slučování v uživatelském rozhraní složek Gitu databricks

Při řešení konfliktů při slučování s uživatelským rozhraním složek Git musíte zvolit mezi ručním řešením konfliktů v editoru nebo zachováním všech příchozích nebo aktuálních změn.

Zachovat všechny aktuální nebo přijmout příchozí změny

Pokud víte, že chcete zachovat jenom všechny aktuální nebo příchozí změny, klikněte na kebab napravo od názvu souboru v podokně poznámkového bloku a vyberte Buď zachovat všechny aktuální změny , nebo provést všechny příchozí změny. Kliknutím na tlačítko se stejným popiskem potvrďte změny a vyřešte konflikt.

Podokno uživatelského rozhraní poznámkového bloku Databricks zobrazující možnosti rozevíracího seznamu pro řešení konfliktů při sloučení

Tip

Nejste si jisti, jakou možnost vybrat? Barva každé možnosti odpovídá příslušným změnám kódu, které bude v souboru uchovávat.

Ruční řešení konfliktů

Ruční řešení konfliktů umožňuje určit, které konfliktní řádky by se měly při sloučení přijmout. V případě konfliktů při slučování konflikt vyřešíte tak, že přímo upravíte obsah souboru s konflikty.

Animovaný obrázek GIF zobrazující ruční řešení konfliktu při slučování

Pokud chcete konflikt vyřešit, vyberte řádky kódu, které chcete zachovat, a odstraňte všechno ostatní, včetně značek konfliktů při slučování Gitu. Až budete hotovi, vyberte Označit jako vyřešené.

Pokud se rozhodnete, že při řešení konfliktů při slučování uděláte nesprávné volby, kliknutím na tlačítko Přerušit proces přerušíte a vrátíte zpět všechno. Jakmile budou všechny konflikty vyřešeny, klikněte na možnost Pokračovat ve sloučení nebo Pokračovat v databázi a vyřešte konflikt a dokončete operaci.

Git reset

Ve složkách Git Databricks můžete git reset provést v uživatelském rozhraní Azure Databricks. Resetování Gitu ve složkách Git Databricks odpovídá git reset --hard kombinaci s git push --force.

Obnovení Gitu nahradí obsah a historii větví nejnovějším stavem jiné větve. Tuto možnost můžete použít v případě, že jsou úpravy v konfliktu s upstreamovou větví a nevadí vám, že tyto úpravy ztratíte při resetování na nadřazenou větev. Přečtěte si další informace o Gitu reset –hard.

Resetování na upstreamovou (vzdálenou) větev

V git reset tomto scénáři:

  • Vybranou větev (například feature_a) resetujete na jinou větev (například main).
  • Resetujete také nadřazenou (vzdálenou) větev feature_a na hlavní.

Důležité

Při resetování ztratíte všechny nepotvrzené a potvrzené změny v místní i vzdálené verzi větve.

Resetování větve na vzdálenou větev:

  1. V uživatelském rozhraní složek Gitu z nabídky Větev zvolte větev, kterou chcete resetovat.

    Selektor větví v uživatelském rozhraní složek Gitu.

  2. V nabídce kebabu vyberte Obnovit .

    Operace resetování Gitu v nabídce kebabu

  3. Vyberte větev, která se má resetovat.

    Resetování Gitu – pevné dialogové okno

Konfigurace režimu řídké rezervace

Řídké rezervace je nastavení na straně klienta, které umožňuje klonovat a pracovat pouze s podmnožinou adresářů vzdálených úložišť v Databricks. To je užitečné zejména v případě, že velikost úložiště přesahuje podporované limity Databricks.

Režim řídké rezervace můžete použít při přidávání (klonování) nového úložiště.

  1. V dialogovém okně Přidat složku Git otevřete Upřesnit.

  2. Vyberte režim řídké rezervace.

    Možnost řídké rezervace v dialogovém okně Přidat složku Git

  3. V poli Vzory kužele zadejte požadované vzory rezervace kužele. Oddělte více vzorů pomocí konců řádků.

V tuto chvíli nemůžete zakázat řídké rezervace úložiště v Azure Databricks.

Jak fungují vzory kuželů

Pokud chcete zjistit, jak vzor kužele funguje v režimu řídké rezervace, podívejte se na následující diagram představující strukturu vzdáleného úložiště.

Struktura vzdáleného úložiště bez řídké rezervace

Pokud vyberete režim řídké rezervace, ale nezadáte vzor kužele, použije se výchozí vzor kužele. To zahrnuje pouze soubory v kořenovém adresáři a žádné podadresáře, což vede k následující struktuře úložiště:

Řídké rezervace: výchozí vzor kužele.

Nastavení řídkého vzoru kužele rezervace jako parent/child/grandchild výsledků ve všech obsahech grandchild adresáře, který se rekurzivně zahrne. Soubory okamžitě v adresáři /parent/parent/child a kořenovém adresáři jsou také zahrnuty. Podívejte se na adresářovou strukturu v následujícím diagramu:

Řídké rezervace: Zadejte vzor kužele složky parent-grandchild-child.

Můžete přidat více vzorů oddělených koncům řádků.

Poznámka:

Chování vyloučení (!) se v syntaxi vzoru kornoutu Gitu nepodporuje.

Úprava nastavení řídké rezervace

Po vytvoření úložiště je možné řídký vzor kornoutu rezervace upravit ze vzorů Nastavení > pokročilých > kuželů.

Všimněte si následujícího chování:

  • Odebrání složky ze vzoru kužele ji odebere z Databricks, pokud nejsou nepotvrzené změny.

  • Přidání složky prostřednictvím úprav vzor kornoutu řídké rezervace ho přidá do Databricks bez nutnosti dalšího vyžádání změn.

  • Vzory řídké rezervace nelze změnit, aby se při nepotvrzených změnách v této složce odebrala složka.

    Uživatel například upraví soubor ve složce a nespíše změny. Pak se pokusí změnit vzor řídké rezervace tak, aby tuto složku nezahrnovala. V tomto případě se vzor přijme, ale skutečná složka se neodstraní. Potřebuje vrátit vzor, aby zahrnoval danou složku, potvrdit změny a pak znovu použít nový vzor.

Poznámka:

Řídké rezervace úložiště, které bylo vytvořeno s povoleným režimem řídké rezervace, nemůžete zakázat.

Provedení a nasdílení změn pomocí řídké rezervace

Můžete upravit existující soubory a potvrdit je a odeslat je ze složky Git. Při vytváření nových složek souborů je zahrňte do vzoru kužele, který jste pro toto úložiště zadali.

Zahrnutím nové složky mimo vzor kužele dojde během operace potvrzení a vložení k chybě. Pokud ho chcete opravit, upravte vzor kužele tak, aby obsahoval novou složku, kterou se pokoušíte potvrdit a odeslat.

Vzory konfiguračního souboru úložiště

Konfigurační soubor pro potvrzení používá vzory podobné vzorům gitignore a dělá toto:

  • Pozitivní vzory umožňují zahrnutí výstupů pro odpovídající poznámkové bloky.
  • Negativní vzory zakazují zahrnutí výstupů pro odpovídající poznámkové bloky.
  • Vzory se vyhodnocují v pořadí pro všechny poznámkové bloky.
  • Neplatné cesty nebo cesty, které se nepřekládají na .ipynb poznámkové bloky, se ignorují.

Pozitivní vzor: Pokud chcete zahrnout výstupy z cesty folder/innerfolder/notebook.ipynbpoznámkového bloku, použijte následující vzory:

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

Negativní vzor: Pokud chcete vyloučit výstupy poznámkového bloku, zkontrolujte, jestli se žádný z pozitivních vzorů neshoduje nebo nepřidá negativní vzor ve správném místě konfiguračního souboru. Negativní vzory (vyloučení) začínají na !:

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

Omezení řídké rezervace

Řídké rezervace v současné době nefunguje pro úložiště Azure DevOps větší než 4 GB.

Přidejte úložiště a připojte se vzdáleně později.

Pokud chcete spravovat složky Gitu a pracovat s nimi programově, použijte rozhraní REST API složek Gitu.