Udostępnij za pośrednictwem


Uruchamianie operacji git w folderach Git usługi Databricks (Repozytoria)

W tym artykule opisano sposób wykonywania typowych operacji usługi Git w obszarze roboczym usługi Databricks przy użyciu folderów Git, w tym klonowania, rozgałęziania, zatwierdzania i wypychania.

Klonowanie repozytorium połączonego ze zdalnym repozytorium Git

  1. Na pasku bocznym wybierz pozycję Obszar roboczy , a następnie przeglądarkę do folderu, w którym chcesz utworzyć klon repozytorium Git.

  2. Kliknij strzałkę w dół po prawej stronie pozycji Dodaj w prawym górnym rogu obszaru roboczego, a następnie wybierz pozycję Folder Git z listy rozwijanej.

    Dodaj interfejs użytkownika repozytorium.

  3. W oknie dialogowym Tworzenie folderu Git podaj następujące informacje:

    • Adres URL repozytorium Git, które chcesz sklonować, w formacie https://example.com/organization/project.git
    • Dostawca Usługi Git dla repozytorium, które chcesz sklonować. Opcje obejmują usługi GitHub, GitHub Enterprise, GitLab i Azure DevOps (Azure Repos)
    • Nazwa folderu w obszarze roboczym, który będzie zawierać zawartość sklonowanego repozytorium
    • Niezależnie od tego, czy będziesz używać wyewidencjonowania rozrzedzonych, w których klonowane są tylko podkatalogi określone przy użyciu wzorca stożka

    Sklonuj z interfejsu użytkownika folderu Git.

Na tym etapie masz możliwość sklonowania tylko podzbioru katalogów repozytorium przy użyciu rozrzednia wyewidencjonowania. Jest to przydatne, jeśli repozytorium jest większe niż obsługiwane limity usługi Databricks

  1. Kliknij pozycję Utwórz folder Git. Zawartość repozytorium zdalnego jest klonowana do repozytorium usługi Databricks i możesz rozpocząć pracę z nimi przy użyciu obsługiwanych operacji Git za pośrednictwem obszaru roboczego.

Najlepsze rozwiązanie: Współpraca w folderach Git

Foldery Git usługi Databricks skutecznie zachowują się jako osadzeni klienci Git w obszarze roboczym, dzięki czemu użytkownicy mogą współpracować przy użyciu kontroli źródła i przechowywania wersji opartej na usłudze Git. Aby zwiększyć efektywność współpracy zespołowej, użyj oddzielnego folderu Git usługi Databricks mapowanego na zdalne repozytorium Git dla każdego użytkownika, który pracuje w swojej gałęzi programowania. Mimo że wielu użytkowników może współtworzyć zawartość w folderze Git, tylko jeden wyznaczony użytkownik powinien wykonywać operacje git, takie jak ściąganie, wypychanie, zatwierdzanie i przełączanie gałęzi. Jeśli wielu użytkowników wykonuje operacje Git w folderze Git, zarządzanie gałęziami może stać się trudne i podatne na błędy, takie jak gdy użytkownik przełącza gałąź i przypadkowo przełącza ją dla wszystkich innych użytkowników tego folderu.

Aby udostępnić folder Git współpracownikowi, kliknij pozycję Kopiuj link, aby utworzyć folder Git na banerze w górnej części obszaru roboczego usługi Databricks. Ta akcja kopiuje adres URL do lokalnego schowka, który można wysłać do innego użytkownika. Gdy użytkownik adresata ładuje ten adres URL w przeglądarce, zostanie przeniesiony do obszaru roboczego, w którym może utworzyć własny folder Git sklonowany z tego samego zdalnego repozytorium Git. W interfejsie użytkownika zostanie wyświetlone okno dialogowe Modalne tworzenie folderu Git, wstępnie wypełnione wartościami pobranymi z własnego folderu Git. Po kliknięciu niebieskiego przycisku Utwórz folder Git w modalnym repozytorium Git zostanie sklonowane do obszaru roboczego w bieżącym folderze roboczym, z którym można teraz pracować bezpośrednio.

Kliknij przycisk Kopiuj link do folderu Git, aby udostępnić konfigurację repozytorium Git innemu użytkownikowi w organizacji usługi Databricks

Podczas uzyskiwania dostępu do folderu Git innej osoby w udostępnionym obszarze roboczym kliknij pozycję Utwórz folder Git na banerze u góry. Ta akcja spowoduje otwarcie okna dialogowego Tworzenie folderu Git, wstępnie wypełnione konfiguracją repozytorium Git, które go obsługuje.

Podczas wyświetlania folderu Git innego użytkownika kliknij przycisk Utwórz folder Git na banerze, aby utworzyć kopię tego folderu we własnym obszarze roboczym

Ważne

Obecnie nie można używać interfejsu wiersza polecenia usługi Git do wykonywania operacji usługi Git w folderze Git. Jeśli sklonujesz repozytorium Git przy użyciu interfejsu wiersza polecenia za pośrednictwem terminalu internetowego klastra, pliki nie będą wyświetlane w interfejsie użytkownika usługi Azure Databricks.

Uzyskiwanie dostępu do okna dialogowego Git

Dostęp do okna dialogowego Git można uzyskać z poziomu notesu lub przeglądarki folderów Git usługi Databricks.

  • W notesie kliknij przycisk obok nazwy notesu, który identyfikuje bieżącą gałąź usługi Git.

    Przycisk okna dialogowego Git w notesie.

  • W przeglądarce folderów Git usługi Databricks kliknij przycisk po prawej stronie nazwy repozytorium. Możesz również kliknąć prawym przyciskiem myszy nazwę repozytorium i wybrać polecenie Git... z menu.

    Przycisk okna dialogowego Git i menu Git w przeglądarce repozytorium.

Zostanie wyświetlone okno dialogowe pełnoekranowe, w którym można wykonywać operacje usługi Git.

Okno dialogowe używane do wykonywania operacji usługi Git w obszarze roboczym usługi Databricks.

  1. Bieżąca gałąź robocza. W tym miejscu możesz wybrać inne gałęzie. Jeśli inni użytkownicy mają dostęp do tego folderu Git, zmiana gałęzi spowoduje również zmianę gałęzi dla nich, jeśli współużytkują ten sam obszar roboczy. Zapoznaj się z zalecanym najlepszym rozwiązaniem , aby uniknąć tego problemu.
  2. Przycisk, aby utworzyć nową gałąź.
  3. Lista zasobów i podfolderów plików zaewidencjonowana w bieżącej gałęzi.
  4. Przycisk umożliwiający przejście do dostawcy usługi Git i wyświetlenie bieżącej historii gałęzi.
  5. Przycisk ściągania zawartości ze zdalnego repozytorium Git.
  6. Pole tekstowe, w którym dodasz komunikat zatwierdzenia i opcjonalny rozszerzony opis zmian.
  7. Przycisk umożliwiający zatwierdzenie pracy w gałęzi roboczej i wypchnięcie zaktualizowanej gałęzi do zdalnego repozytorium Git.

Menu Kebab Kliknij kebab w prawym górnym rogu, aby wybrać jedną z dodatkowych operacji gałęzi Git, takich jak twarde resetowanie, scalanie lub ponowna baza danych.

Menu rozwijane w oknie dialogowym folderu Git dla operacji gałęzi.

Jest to twój dom do wykonywania operacji git w folderze Git obszaru roboczego. Operacje usługi Git są ograniczone do operacji przedstawionych w interfejsie użytkownika.

Utworzenie nowej gałęzi

Nową gałąź można utworzyć na podstawie istniejącej gałęzi w oknie dialogowym Git:

Nowa gałąź okna dialogowego Usługi Git.

Przełączanie do innej gałęzi

Możesz przełączyć się na inną gałąź (wyewidencjonować) przy użyciu listy rozwijanej gałęzi w oknie dialogowym Git:

Przełączanie okna dialogowego usługi Git do innej gałęzi

Ważne

Gdy wyewidencjonujesz gałąź w folderze Git, zawsze istnieje prawdopodobieństwo, że gałąź zostanie usunięta w zdalnym repozytorium Git przez inną osobę. Jeśli gałąź zostanie usunięta w repozytorium zdalnym, lokalna wersja może pozostać obecna w skojarzonym folderze Git przez maksymalnie 7 dni. Nie można usunąć gałęzi lokalnych w usłudze Databricks, więc jeśli musisz je usunąć, musisz również usunąć i usunąć repozytorium.

Zatwierdzanie i wypychanie zmian do zdalnego repozytorium Git

Po dodaniu nowych notesów lub plików albo wprowadzeniu zmian w istniejących notesach lub plikach interfejs użytkownika folderu Git wyróżnia zmiany.

Okno dialogowe Usługi Git z wyróżnionymi zmianami.

Dodaj wymagany komunikat zatwierdzenia dla zmian, a następnie kliknij pozycję Zatwierdź i wypchnij , aby wypchnąć te zmiany do zdalnego repozytorium Git.

Jeśli nie masz uprawnień do zatwierdzania gałęzi domyślnej (takiej jak main gałąź), utwórz nową gałąź i użyj interfejsu dostawcy Git, aby utworzyć żądanie ściągnięcia (PR), aby scalić ją z gałęzią domyślną.

Uwaga

Ściąganie zmian ze zdalnego repozytorium Git

Aby ściągnąć zmiany ze zdalnego repozytorium Git, kliknij przycisk Pull in the Git operations dialog (Ściąganie w oknie dialogowym Operacje git). Notesy i inne pliki są automatycznie aktualizowane do najnowszej wersji w zdalnym repozytorium Git. Jeśli zmiany pobrane z repozytorium zdalnego powodują konflikt ze zmianami lokalnymi w usłudze Databricks, należy rozwiązać konflikty scalania.

Ważne

Operacje git, które ściągają zmiany nadrzędne, czyszczą stan notesu. Aby uzyskać więcej informacji, zobacz Zmiany przychodzące czyszczy stan notesu.

Scal gałęzie

Uzyskaj dostęp do operacji Scalanie usługi Git, wybierając ją z Menu Kebab kebabu w prawym górnym rogu okna dialogowego Operacje usługi Git.

Funkcja scalania w folderach Git usługi Databricks scala jedną gałąź z inną przy użyciu polecenia git merge. Operacja scalania to sposób łączenia historii zatwierdzania z jednej gałęzi w inną gałąź; jedyną różnicą jest strategia używana do osiągnięcia tego celu. W przypadku początkujących użytkowników usługi Git zalecamy używanie scalania (za pośrednictwem bazy danych), ponieważ nie wymaga wymuszania wypychania do gałęzi i w związku z tym nie zapisuje ponownie historii zatwierdzeń.

  • Jeśli występuje konflikt scalania, rozwiąż go w interfejsie użytkownika folderów Git.
  • Jeśli nie występuje konflikt, scalanie jest wypychane do zdalnego repozytorium Git przy użyciu polecenia git push.

Rebase gałąź w innej gałęzi

Uzyskaj dostęp do operacji Git Rebase , wybierając ją z Menu Kebab menu kebab w prawym górnym rogu okna dialogowego Operacje usługi Git.

Ponowne łączenie zmienia historię zatwierdzeń gałęzi. Podobnie jak git merge, git rebase integruje zmiany z jednej gałęzi z inną. Rebase wykonuje następujące czynności:

  1. Zapisuje zatwierdzenia w bieżącej gałęzi w obszarze tymczasowym.
  2. Resetuje gałąź bieżącą do wybranej gałęzi.
  3. Ponownie łączy każde indywidualne zatwierdzenie wcześniej zapisane w bieżącej gałęzi, co powoduje, że historia liniowa łączy zmiany z obu gałęzi.

Ostrzeżenie

Użycie bazy danych może powodować problemy z przechowywaniem wersji dla współpracowników pracujących w tym samym repozytorium.

Typowym przepływem pracy jest zmiana bazy gałęzi funkcji w gałęzi głównej.

Aby ponownie utworzyć gałąź w innej gałęzi:

  1. W menu Gałąź w interfejsie użytkownika folderów Git wybierz gałąź, którą chcesz ponownie utworzyć.

  2. Wybierz pozycję Rebase z menu kebab.

    Funkcja rebase usługi Git w menu kebab.

  3. Wybierz gałąź, na której chcesz zmienić bazę.

    Operacja ponownego bazy integruje zmiany z gałęzi wybranej tutaj do bieżącej gałęzi.

Foldery Git usługi Databricks są uruchamiane git commit i git push --force aktualizowane zdalne repozytorium Git.

Rozwiązywanie konfliktów scalania

Konflikty scalania występują, gdy co najmniej 2 użytkownicy usługi Git próbują scalić zmiany w tych samych wierszach pliku w wspólnej gałęzi, a usługa Git nie może wybrać odpowiednich zmian do zastosowania. Konflikty scalania mogą również wystąpić, gdy użytkownik próbuje ściągnąć lub scalić zmiany z innej gałęzi w gałęzi z niezatwierdzonym zmianami.

Animowany plik GIF pokazujący typowy konflikt scalania wynikający z niezatwierdzonych zmian podczas ściągania usługi Git

Jeśli operacja, taka jak ściąganie, ponowne bazy lub scalanie powoduje konflikt scalania, interfejs użytkownika folderów Git wyświetla listę plików z konfliktami i opcjami rozwiązywania konfliktów.

Dostępne są dwie podstawowe opcje:

  • Użyj interfejsu użytkownika folderów Git, aby rozwiązać konflikt.
  • Przerwij operację git, ręcznie odrzuć zmiany w pliku powodującym konflikt, a następnie spróbuj ponownie wykonać operację git.

Animowany plik GIF przedstawiający konflikt scalania w interfejsie użytkownika folderów usługi Git usługi Databricks

Podczas rozwiązywania konfliktów scalania z interfejsem użytkownika folderów Git należy wybrać między ręcznym rozwiązaniem konfliktów w edytorze, czy zachowaniem wszystkich zmian przychodzących lub bieżących.

Zachowaj wszystkie bieżące lub podejmij zmiany przychodzące

Jeśli wiesz, że chcesz zachować tylko wszystkie bieżące lub przychodzące zmiany, kliknij kebab z prawej strony nazwy pliku w okienku notesu i wybierz pozycję Zachowaj wszystkie bieżące zmiany lub Wprowadź wszystkie zmiany przychodzące. Kliknij przycisk z tą samą etykietą, aby zatwierdzić zmiany i rozwiązać konflikt.

Okienko interfejsu użytkownika notesu usługi Databricks z opcjami listy rozwijanej dotyczącymi rozwiązywania konfliktów scalania

Napiwek

Zdezorientowany, która opcja ma być wybrana? Kolor każdej opcji odpowiada odpowiednim zmianom kodu, które będą zachowywane w pliku.

Ręczne rozwiązywanie konfliktów

Ręczne rozwiązywanie konfliktów umożliwia określenie, które wiersze powodujące konflikt powinny zostać zaakceptowane w scalaniu. W przypadku konfliktów scalania można rozwiązać konflikt, edytując bezpośrednio zawartość pliku z konfliktami.

Animowany plik GIF przedstawiający ręczne rozwiązanie konfliktu scalania

Aby rozwiązać konflikt, wybierz wiersze kodu, które chcesz zachować i usunąć, w tym znaczniki konfliktów scalania Git. Po zakończeniu wybierz pozycję Oznacz jako rozwiązane.

Jeśli zdecydujesz się na niewłaściwe wybory podczas rozwiązywania konfliktów scalania, kliknij przycisk Przerwij, aby przerwać proces i cofnąć wszystko. Po rozwiązaniu wszystkich konfliktów kliknij opcję Kontynuuj scalanie lub Kontynuuj ponowną bazę danych , aby rozwiązać konflikt i zakończyć operację.

Git reset

W folderach Usługi Git usługi Databricks możesz wykonać usługę Git reset w interfejsie użytkownika usługi Azure Databricks. Resetowanie usługi Git w folderach Usługi Git usługi Databricks jest równoważne połączeniu git reset --hard z usługą git push --force.

Usługa Git reset zastępuje zawartość gałęzi i historię najnowszym stanem innej gałęzi. Można to użyć, gdy zmiany są w konflikcie z gałęzią nadrzędną i nie masz nic przeciwko utracie tych zmian podczas resetowania do gałęzi nadrzędnej. Przeczytaj więcej na temat usługi git reset –hard.

Resetowanie do gałęzi nadrzędnej (zdalnej)

W git reset tym scenariuszu:

  • Zresetujesz wybraną gałąź (na przykład feature_a) do innej gałęzi (na przykład main).
  • Należy również zresetować gałąź nadrzędną (zdalną) do głównej feature_a .

Ważne

Po zresetowaniu utracisz wszystkie niezatwierdzone i zatwierdzone zmiany zarówno w lokalnej, jak i zdalnej wersji gałęzi.

Aby zresetować gałąź do gałęzi zdalnej:

  1. W interfejsie użytkownika folderów Git z menu Gałąź wybierz gałąź, którą chcesz zresetować.

    Selektor gałęzi w interfejsie użytkownika folderów Git.

  2. Wybierz pozycję Resetuj z menu kebab.

    Operacja resetowania git w menu kebab.

  3. Wybierz gałąź do zresetowania.

    Okno dialogowe Resetowanie usługi Git — trudne.

Konfigurowanie trybu wyewidencjonowania rozrzedzania

Wyewidencjonowanie rozrzedne to ustawienie po stronie klienta, które umożliwia klonowanie i pracę tylko z podzbiorem katalogów repozytoriów zdalnych w usłudze Databricks. Jest to szczególnie przydatne, jeśli rozmiar repozytorium przekracza obsługiwane limity usługi Databricks.

Tryb wyewidencjonowania rozrzedzania można użyć podczas dodawania (klonowania) nowego repozytorium.

  1. W oknie dialogowym Dodawanie folderu Git otwórz pozycję Zaawansowane.

  2. Wybierz tryb wyewidencjonowania rozrzedzania.

    Opcja wyewidencjonowania rozrzedowego w oknie dialogowym Dodawanie folderu Git.

  3. W polu Wzorce stożka określ żądane wzorce wyewidencjonowania stożka. Rozdziel wiele wzorców według podziałów wierszy.

Obecnie nie można wyłączyć wyewidencjonowania rozrzednego dla repozytorium w usłudze Azure Databricks.

Jak działają wzorce stożka

Aby zrozumieć, jak działa wzorzec stożka w trybie wyewidencjonowania rozrzedzania, zobacz poniższy diagram przedstawiający strukturę repozytorium zdalnego.

Struktura repozytorium zdalnego bez rozrzedzeni wyewidencjonowania.

Jeśli wybierzesz tryb wyewidencjonowania rozrzedzania, ale nie określisz wzorca stożka, zostanie zastosowany domyślny wzorzec stożka. Obejmuje to tylko pliki w katalogu głównym i bez podkatalogów, co powoduje utworzenie struktury repozytorium w następujący sposób:

Wyewidencjonuj rozrzedzną: domyślny wzorzec stożka.

Ustawienie rozrzedniętego grandchild wzorca stożka wyewidencjonowania jako parent/child/grandchild powoduje, że cała zawartość katalogu jest rekursywnie dołączana. Pliki bezpośrednio w /parentkatalogu , /parent/child i katalogu głównym są również uwzględniane. Zobacz strukturę katalogów na poniższym diagramie:

Wyewidencjonuj rozrzedzonych: określ wzorzec stożka folderu parent-grandchild-child.

Można dodać wiele wzorców rozdzielonych podziałami wierszy.

Uwaga

Zachowania wykluczeń (!) nie są obsługiwane w składni wzorca stożka Git.

Modyfikowanie ustawień wyewidencjonowania rozrzedzanych

Po utworzeniu repozytorium wzorzec wyewidencjonowania rozrzedzonego można edytować w obszarze Ustawienia > Zaawansowane > wzorce stożka.

Należy zwrócić uwagę na następujące zachowanie:

  • Usunięcie folderu ze wzorca stożka spowoduje usunięcie go z usługi Databricks, jeśli nie ma żadnych niezatwierdzonych zmian.

  • Dodanie folderu za pomocą edytowania rozrzedniętego wzorca stożka wyewidencjonowania dodaje go do usługi Databricks bez konieczności dodatkowego ściągania.

  • Nie można zmienić wzorców wyewidencjonowania rozrzedzonych, aby usunąć folder, gdy w tym folderze nie ma niezatwierdzonych zmian.

    Na przykład użytkownik edytuje plik w folderze i nie zatwierdza zmian. Następnie próbuje zmienić wzorzec wyewidencjonowania rozrzednego, aby nie zawierał tego folderu. W takim przypadku wzorzec jest akceptowany, ale rzeczywisty folder nie jest usuwany. Musi przywrócić wzorzec, aby uwzględnić ten folder, zatwierdzić zmiany, a następnie ponownie zastosować nowy wzorzec.

Uwaga

Nie można wyłączyć wyewidencjonowania rozrzedzonych dla repozytorium, które zostało utworzone z włączonym trybem wyewidencjonowania rozrzedzonych.

Wprowadzanie i wypychanie zmian za pomocą wyewidencjonowania rozrzedniętego

Istniejące pliki można edytować i zatwierdzać i wypychać z folderu Git. Podczas tworzenia nowych folderów plików dołącz je do wzorca stożka określonego dla tego repozytorium.

Dołączenie nowego folderu poza wzorcem stożka powoduje błąd podczas operacji zatwierdzania i wypychania. Aby rozwiązać ten problem, edytuj wzorzec stożka, aby uwzględnić nowy folder, który próbujesz zatwierdzić i wypchnąć.

Wzorce dla pliku konfiguracji repozytorium

Plik konfiguracji zatwierdzenia używa wzorców podobnych do wzorców gitignore i wykonuje następujące czynności:

  • Wzorce dodatnie umożliwiają dołączanie danych wyjściowych do pasujących notesów.
  • Wzorce ujemne wyłączają dołączanie danych wyjściowych dla pasujących notesów.
  • Wzorce są oceniane w kolejności dla wszystkich notesów.
  • Nieprawidłowe ścieżki lub ścieżki, które nie są rozpoznawane w .ipynb notesach, są ignorowane.

Wzorzec dodatni: Aby uwzględnić dane wyjściowe ze ścieżki folder/innerfolder/notebook.ipynbnotesu, użyj następujących wzorców:

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

Wzorzec ujemny: Aby wykluczyć dane wyjściowe dla notesu, sprawdź, czy żaden z wzorców dodatnich nie jest zgodny lub czy w prawidłowym miejscu pliku konfiguracji nie ma żadnego wzorca ujemnego. Wzorce ujemne (wykluczanie) zaczynają się od !:

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

Ograniczenie wyewidencjonowania rozrzedowego

Wyewidencjonowanie rozrzedlone obecnie nie działa w przypadku repozytoriów usługi Azure DevOps większych niż 4 GB.

Dodawanie repozytorium i łączenie się zdalnie później

Aby programowo zarządzać folderami Git i pracować z nimi, użyj interfejsu API REST folderów Git.