Выполнение операций Git в папках Databricks Git (Repos)

В статье описывается, как выполнять распространенные операции Git в рабочей области Databricks с помощью папок Git, включая клонирование, ветвление, фиксацию и отправку.

Клонирование репозитория, подключенного к удаленному репозиторию Git

  1. На боковой панели выберите "Рабочая область " и в браузере в папку, в которой нужно создать клон репозитория Git.

  2. Щелкните стрелку вниз справа от надстройки в правом верхнем углу рабочей области и выберите папку Git в раскрывающемся списке.

    Добавление пользовательского интерфейса репозитория.

  3. В диалоговом окне "Создание папки Git" укажите следующие сведения:

    • URL-адрес репозитория Git, который требуется клонировать, в формате https://example.com/organization/project.git
    • Поставщик Git для репозитория, который требуется клонировать. Параметры включают GitHub, GitHub Enterprise, GitLab и Azure DevOps (Azure Repos)
    • Имя папки в рабочей области, содержащей содержимое клонированного репозитория
    • Следует ли использовать разреженные проверка out, в которых клонируются только вложенные каталоги, указанные с помощью шаблона конуса.

    Клонирование из пользовательского интерфейса папки Git.

На этом этапе вы можете клонировать только подмножество каталогов репозитория с помощью разреженных проверка out. Это полезно, если репозиторий превышает поддерживаемые ограничения Databricks

  1. Щелкните "Создать папку Git". Содержимое удаленный репозиторий клонируется в репозиторий Databricks, и вы можете начать работу с ними с помощью поддерживаемых операций Git через рабочую область.

Рекомендация. Совместная работа в папках Git

Папки Databricks Git эффективно ведут себя как внедренные клиенты Git в рабочей области, чтобы пользователи могли совместно работать с помощью системы управления версиями и управления версиями на основе Git. Чтобы повысить эффективность совместной работы группы, используйте отдельную папку Databricks Git, сопоставленную с удаленным репозиторием Git для каждого пользователя, который работает в собственной ветви разработки. Хотя несколько пользователей могут вносить содержимое в папку Git, только один назначенный пользователь должен выполнять такие операции, как вытягивание, отправка, фиксация и переключение ветвей. Если несколько пользователей выполняют операции Git в папке Git, управление филиалами может стать сложным и подверженным ошибкам, например когда пользователь переключает ветвь и непреднамеренно переключает его для всех остальных пользователей этой папки.

Внимание

В настоящее время нельзя использовать интерфейс командной строки Git для выполнения операций Git в папке Git. Если клонировать репозиторий Git с помощью интерфейса командной строки через веб-терминал кластера, файлы не будут отображаться в пользовательском интерфейсе Azure Databricks.

Доступ к диалоговому окне Git

Вы можете получить доступ к диалогу Git из записной книжки или из браузера папок Databricks Git.

  • В записной книжке нажмите кнопку рядом с именем записной книжки, которая определяет текущую ветвь Git.

    Кнопка диалогового окна Git в записной книжке.

  • В браузере папок Databricks Git нажмите кнопку справа от имени репозитория. Вы также можете щелкнуть правой кнопкой мыши имя репозитория и выбрать Git... в меню.

    Кнопка диалогового окна Git и меню Git в браузере репозитория.

Откроется полноэкранное диалоговое окно, в котором можно выполнять операции Git.

Диалоговое окно, используемое для выполнения операций Git в рабочей области Databricks.

  1. Текущая рабочая ветвь. Вы можете выбрать другие ветви здесь. Если у других пользователей есть доступ к этой папке Git, изменение ветви также изменит ветвь для них, если они совместно используют ту же рабочую область. Ознакомьтесь с рекомендуемой рекомендацией, чтобы избежать этой проблемы.
  2. Кнопка для создания новой ветви.
  3. Список файловых ресурсов и вложенных папок, проверка в текущую ветвь.
  4. Кнопка, которая выводит вас в поставщик Git и отображает текущую историю ветви.
  5. Кнопка для извлечения содержимого из удаленного репозитория Git.
  6. Текстовое поле, в котором добавляется сообщение фиксации и необязательное расширенное описание изменений.
  7. Кнопка, чтобы зафиксировать работу в рабочей ветви и отправить обновленную ветвь в удаленный репозиторий Git.

Меню Кебаб Щелкните кебаб в правом верхнем углу, чтобы выбрать из дополнительных операций ветви Git, таких как жесткий сброс, слияние или перебаза.

Раскрывающееся меню в диалоговом окне папки Git для операций ветви.

Это ваш дом для выполнения операций Git в папке рабочей области Git. Операции Git, представленные в пользовательском интерфейсе, ограничены.

создать новую ветвь.

Новую ветвь можно создать на основе существующей ветви из диалогового окна Git:

Диалоговое окно Git new branch.

Переход на другую ветвь

Вы можете переключиться на другую ветвь (проверка out) с помощью раскрывающегося списка ветви в диалоговом Git:

Диалоговое окно Git переключится на другую ветвь

Внимание

После проверка выхода ветви в папку Git всегда может быть удалена в удаленном репозитории Git другим пользователем. Если ветвь удаляется в удаленном репозитории, локальная версия может оставаться в связанной папке Git до 7 дней. Локальные ветви в Databricks нельзя удалить, поэтому, если их необходимо удалить, необходимо также удалить и восстановить репозиторий.

Фиксация и отправка изменений в удаленный репозиторий Git

Если вы добавили новые записные книжки или файлы или внесли изменения в существующие записные книжки или файлы, Пользовательский интерфейс папки Git выделяет изменения.

Диалоговое окно Git с выделенными изменениями.

Добавьте необходимое сообщение фиксации для изменений и нажмите кнопку "Зафиксировать и отправить" , чтобы отправить эти изменения в удаленный репозиторий Git.

Если у вас нет разрешения на фиксацию ветвь по умолчанию (напримерmain, ветвь), создайте новую ветвь и используйте интерфейс поставщика Git для создания запроса на вытягивание (PR), чтобы объединить его в ветвь по умолчанию.

Примечание.

  • Выходные данные записной книжки не включаются в фиксации по умолчанию при сохранении записных книжек в исходных форматах файлов (.py, .scala, .sql. .r Сведения о фиксации выходных данных записной книжки с помощью формата IPYNB см. в разделе "Контроль выходных артефактов записной книжки IPYNB"

Извлечение изменений из удаленного репозитория Git

Чтобы извлечь изменения из удаленного репозитория Git, нажмите кнопку Pull в диалоговом окне операций Git. Записные книжки и другие файлы обновляются автоматически до последней версии в удаленном репозитории Git. Если изменения, полученные из удаленного репозитория, конфликтуют с локальными изменениями в Databricks, необходимо устранить конфликт слияния.

Внимание

Операции Git, которые вытягивают вышестоящие изменения, очищают состояние записной книжки. Дополнительную информацию см. в разделе Входящие изменения очищают состояние записной книжки.

Слияние ветвей

Перейдите к операции слияния Git, выбрав ее из Меню Кебаб кебаба в правом верхнем углу диалогового окна операций Git.

Функция слияния в папках Databricks Git объединяет одну ветвь в другую с помощью git merge. Операция слияния — это способ объединения журнала фиксаций из одной ветви в другую ветвь; единственное различие заключается в стратегии, с помощью этой стратегии. Для начинающих Git рекомендуется использовать слияние (по сравнению с повторной базой), так как не требуется принудительная отправка в ветвь и поэтому не перезаписывает журнал фиксаций.

Дополнительные сведения о различиях между слиянием и повторной фиксацией см . в документации Atlassian по теме.

  • Если есть конфликт слияния, устраните его в пользовательском интерфейсе папок Git.
  • Если конфликт отсутствует, слияние отправляется в удаленный репозиторий Git с помощью git push.

Rebase ветвь в другой ветви

Перейдите к операции перебазы Git, выбрав ее Меню Кебаб в меню kebab в правом верхнем углу диалогового окна операций Git.

Повторное масштабирование изменяет журнал фиксации ветви. Например git merge, git rebase интегрирует изменения из одной ветви в другую. Перебаза выполняет следующие действия:

  1. Сохраняет фиксации в текущей ветви во временной области.
  2. Сбрасывает текущую ветвь в выбранную ветвь.
  3. Повторно применяет каждую отдельную фиксацию, ранее сохраненную в текущей ветви, в результате чего линейная история объединяет изменения из обеих ветвей.

Подробное описание перебазы см. в разделе Git rebase.

Предупреждение

Использование повторной базы может вызвать проблемы с управление версиями для сотрудников, работающих в одном репозитории.

Распространенный рабочий процесс — перебазировать ветвь компонента в главной ветви.

Чтобы перебазировать ветвь в другой ветви, выполните следующее:

  1. В меню "Ветвь" в пользовательском интерфейсе папок Git выберите ветвь, которую вы хотите перебазировать.

  2. Выберите "Перебаза " в меню кебаб.

    Функция перебазы Git в меню кебаб.

  3. Выберите ветвь, на которую нужно перебазироваться.

    Операция перебазирования интегрирует изменения из ветви, выбранной здесь, в текущую ветвь.

Папки Databricks Git запускают git commit и git push --force обновляют удаленный репозиторий Git.

Разрешение конфликтов слияния

Конфликты слияния происходят, когда 2 или более пользователей Git пытаются объединить изменения в одни и те же строки файла в общую ветвь, и Git не может выбрать правильные изменения для применения. Конфликты слияния также могут возникать, когда пользователь пытается извлечь или объединить изменения из другой ветви в ветвь с незафиксированными изменениями.

Анимированный GIF-файл, показывающий распространенные конфликт слияния, возникающие из-за незафиксированных изменений во время извлечения git

Если операция, например вытягивание, перебазирование или слияние, вызывает конфликт слияния, пользовательский интерфейс папок Git отображает список файлов с конфликтами и параметрами разрешения конфликтов.

У вас есть два основных варианта:

  • Используйте пользовательский интерфейс папок Git для устранения конфликта.
  • Отмените операцию Git вручную карта изменения в конфликтующего файла и повторите попытку операции Git.

Анимированный GIF-файл с конфликт слияния в пользовательском интерфейсе папки папок Databricks Git

При разрешении конфликт слияния с пользовательским интерфейсом папок Git необходимо выбрать один из конфликтов в редакторе или сохранить все входящие или текущие изменения.

Сохранение всех текущих или входящих изменений

Если вы знаете, что вы хотите сохранить все текущие или входящие изменения, щелкните кебаб справа от имени файла в области записной книжки и выберите "Сохранить все текущие изменения" или "Принять все входящие изменения". Нажмите кнопку с той же меткой, чтобы зафиксировать изменения и устранить конфликт.

Область пользовательского интерфейса записной книжки Databricks с параметрами раскрывающегося списка для разрешения конфликт слияния

Совет

Путать о том, какой вариант выбрать? Цвет каждого параметра соответствует соответствующим изменениям кода, которые будут храниться в файле.

Разрешение конфликтов вручную

Разрешение конфликтов вручную позволяет определить, какие из конфликтующих строк должны приниматься в слиянии. Для конфликт слияния можно устранить конфликт, напрямую изменив содержимое файла с конфликтами.

Анимированный GIF-файл, показывающий ручное разрешение конфликт слияния

Чтобы устранить конфликт, выберите строки кода, которые необходимо сохранить и удалить все остальное, включая маркеры конфликт слияния Git. По завершении нажмите кнопку "Пометить как разрешено".

Если вы решили, что вы сделали неправильный выбор при разрешении конфликт слияния, нажмите кнопку "Прерывание", чтобы отменить процесс и отменить все. После устранения всех конфликтов нажмите кнопку "Продолжить слияние " или "Продолжить перебазу ", чтобы устранить конфликт и завершить операцию.

Git reset

В папках Databricks Git можно выполнять Git reset в пользовательском интерфейсе Azure Databricks. Сброс Git в папках Databricks Git эквивалентен сочетанию git reset --hard с git push --force.

Сброс Git заменяет содержимое ветви и журнал последним состоянием другой ветви. Это можно использовать, если изменения конфликтуют с вышестоящая ветвь, и при сбросе этих изменений в вышестоящая ветвь вы не можете потерять эти изменения. Дополнительные сведения о git reset –hard.

Сброс в вышестоящий (удаленная) ветвь

В git reset этом сценарии:

  • Вы сбрасываете выбранную ветвь (например, feature_a) в другую ветвь (например, main).
  • Вы также сбрасываете вышестоящий (удаленную) ветвь feature_a на главную.

Внимание

При сбросе все незафиксированные и зафиксированные изменения в локальной и удаленной версии ветви теряются.

Чтобы сбросить ветвь в удаленную ветвь:

  1. В пользовательском интерфейсе папок Git в меню "Ветвь " выберите ветвь, которую вы хотите сбросить.

    Селектор ветви в пользовательском интерфейсе папок Git.

  2. Выберите "Сброс" в меню кебаб.

    Операция сброса Git в меню кебаб.

  3. Выберите ветвь для сброса.

    Диалоговое окно сброса Git --hard.

Настройка разреженного режима проверка out

Разреженный проверка out — это параметр на стороне клиента, который позволяет клонировать и работать только с подмножеством каталогов удаленных репозиториев в Databricks. Это особенно полезно, если размер репозитория превышает поддерживаемые ограничения Databricks.

При добавлении (клонирования) нового репозитория можно использовать режим разреженной проверки.

  1. В диалоговом окне "Добавить папку Git" откройте "Дополнительно".

  2. Выберите разреженный режим проверка out.

    Разреженный параметр проверка out в диалоговом окне

  3. В поле "Шаблоны конуса" укажите нужные шаблоны конуса проверка out. Разделение нескольких шаблонов по разрывам строк.

В настоящее время вы не можете отключить разреженные проверка для репозитория в Azure Databricks.

Как работают шаблоны конуса

Сведения о том, как работает шаблон конуса в разреженном режиме проверка out, см. на следующей схеме, представляющей структуру удаленный репозиторий.

Удаленная структура репозитория без разреженного проверка.

Если выбрать режим разреженного проверка out, но не указывать шаблон конуса, применяется шаблон конуса по умолчанию. Это включает только файлы в корне и без подкаталогов, что приводит к структуре репозитория следующим образом:

Разреженный проверка out: шаблон конуса по умолчанию.

Установка разреженного проверка шаблона конуса, что parent/child/grandchild приводит к рекурсивному включению всего содержимого grandchild каталога. Файлы непосредственно в корневом каталоге /parent/parent/child также включены. См. структуру каталога на следующей схеме:

Разреженный проверка out: укажите шаблон конуса папки parent-grandchild-child.

Можно добавить несколько шаблонов, разделенных разрывами строк.

Примечание.

Поведение исключения (!) не поддерживается в синтаксисе шаблона конуса Git.

Изменение разреженных параметров проверка out

После создания репозитория разреженный шаблон проверка out cone можно изменить из > Параметры шаблонов Расширенного конуса>.

Обратите внимание на следующее поведение:

  • При удалении папки из шаблона конуса удаляется из Databricks, если нет незафиксированных изменений.

  • Добавление папки путем редактирования разреженного проверка шаблон конуса добавляет его в Databricks без необходимости дополнительного извлечения.

  • Разреженные шаблоны проверка out нельзя изменить, чтобы удалить папку, если в этой папке есть незафиксированные изменения.

    Например, пользователь редактирует файл в папке и не фиксирует изменения. Затем она пытается изменить разреженный шаблон проверка out, чтобы не включить эту папку. В этом случае шаблон принимается, но фактическая папка не удаляется. Она должна отменить изменения шаблон, чтобы включить в нее папку, зафиксировать изменения, а затем повторно применить новый шаблон.

Примечание.

Вы не можете отключить разреженный проверка out для репозитория, созданного с включенным режимом разреженного извлечения.

Внесение и отправка изменений с разреженным проверка out

Вы можете изменить существующие файлы и зафиксировать их и отправить их из папки Git. При создании новых папок файлов включите их в шаблон конуса, указанный для этого репозитория.

Включение новой папки за пределами шаблона конуса приводит к ошибке во время операции фиксации и отправки. Чтобы исправить его, измените шаблон конуса, чтобы включить новую папку, с помощью которых вы пытаетесь зафиксировать и отправить.

Шаблоны для файла конфигурации репозитория

В файле конфигурации фиксации используются шаблоны, аналогичные шаблонам Gitignore, и выполняется следующее:

  • Положительные шаблоны позволяют включить выходные данные для сопоставления записных книжек.
  • Отрицательные шаблоны отключают включение выходных данных для сопоставления записных книжек.
  • Шаблоны вычисляются для всех записных книжек.
  • Недопустимые пути или пути, не разрешающие .ipynb записные книжки, игнорируются.

Положительный шаблон: чтобы включить выходные данные из пути folder/innerfolder/notebook.ipynbзаписной книжки, используйте следующие шаблоны:

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

Отрицательный шаблон: чтобы исключить выходные данные записной книжки, проверка, что ни один из положительных шаблонов не соответствует или добавляет отрицательный шаблон в правильное место файла конфигурации. Отрицательные (исключенные) шаблоны начинаются с !:

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

Ограничение разреженного проверка out

Разреженный проверка out в настоящее время не работает для репозиториев Azure DevOps размером более 4 ГБ.

Добавление репозитория и удаленное подключение

Для программного управления и работы с папками Git используйте REST API папок Git.