GitHub 버전 제어

참고

Azure Databricks의 작업을 원격 Git 리포지토리와 동기화하기 위해 Databricks는 Git 통합용 리포지토리를 사용할 것을 권장합니다.

이 문서에서는 UI를 통해 GitHub 사용하여 Notebook에 대한 버전 제어를 설정하는 방법을 설명합니다. Databricks CLI 또는 작업 영역 API 2.0을 사용하여 Notebook을 가져오고 내보내고 GitHub 도구를 사용하여 Notebook 버전을 관리할 수도 있습니다.

Git 버전 관리 사용 및 사용 안 함

기본적으로 버전 제어가 사용하도록 설정되어 있습니다. 이 설정을 전환하려면 Git에서 메모장 버전 관리 기능 관리를 참조하세요. Git 버전이 사용하지 않도록 설정되면 사용자 설정 화면에서 Git 통합 탭을 사용할 수 없습니다.

버전 제어 구성

버전 제어를 구성하려면 버전 제어 공급자에서 액세스 자격 증명을 만든 다음 해당 자격 증명을 Azure Databricks 추가합니다.

액세스 토큰 가져오기

GitHub 다음 단계에 따라 리포지토리에 대한 액세스를 허용하는 개인용 액세스 토큰을 만듭니다.

  1. 페이지의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음 설정클릭합니다.

  2. 개발자 설정을 클릭합니다.

  3. 개인용 액세스 토큰 탭을 클릭합니다.

  4. 새 토큰 생성 단추를 클릭합니다.

  5. 토큰 설명을 입력합니다.

  6. 리포지엄 권한을 선택하고 토큰 생성 단추를 클릭합니다.

    Generate GitHub token

  7. 토큰을 클립보드에 복사합니다. 다음 단계에서 Azure Databricks 이 토큰을 입력합니다.

개인용 액세스 토큰을 만드는 방법에 대한 자세한 내용은 GitHub 설명서를 참조하세요.

액세스 토큰을 Azure Databricks 저장

  1. Azure Databricks User Settings Icon 화면 왼쪽 아래의 설정 클릭하고 사용자 설정를 클릭합니다.
  2. Git 통합 탭을 클릭합니다.
  3. 이전에 자격 증명을 입력한 경우 설정 변경 단추를 클릭합니다.
  4. Git 공급자 드롭다운에서 GitHub선택합니다.
  5. 토큰을 토큰 필드에 붙여넣습니다.
  6. Git 공급자 사용자 이름 또는 이메일 필드에 GitHub 사용자 이름 또는 이메일을 입력하고 저장을클릭합니다.

Notebook 수정 버전 작업

기록 패널에서 Notebook 수정 버전을 작업합니다. Notebook의 오른쪽 위에 있는 수정 기록을 클릭하여 기록 패널을 엽니다.

Revision history

참고

기록 패널이 열려 있는 동안에는 Notebook을 수정할 수 없습니다.

  1. Notebook의 오른쪽 위에서 수정 기록을 클릭합니다. Git 상태 표시줄에 Git: 연결되지 않음이표시됩니다.

    Git status bar

  2. Git: 연결되지 않음을클릭합니다.

    Git 기본 설정 대화 상자가 나타납니다. Notebook을 처음 열 때 Notebook이 GitHub 있지 않기 때문에 상태는 연결 해제입니다.

    Git preferences - link new notebook

  3. 상태 필드에서 링크를클릭합니다.

  4. 링크 필드에 GitHub 리포지토리의 URL을 붙여넣습니다.

  5. 분기 드롭다운을 클릭하고 분기를 선택하거나 새 분기의 이름을 입력합니다.

  6. Git 리포지토리의 경로 필드에서 파일을 저장할 리포지토리의 위치를 지정합니다.

    Python Notebook에는 제안된 기본 파일 확장명이 .py 입니다. 를 사용하는 경우 .ipynb Notebook은 iPython Notebook 형식으로 저장됩니다. GitHub 파일이 이미 있는 경우 파일의 URL을 직접 복사하여 붙여넣을 수 있습니다.

  7. 저장을 클릭하여 Notebook 연결을 완료합니다. 이 파일이 이전에 존재하지 않는 경우 이 파일을 GitHub 리포지션에 저장 옵션이 있는 프롬프트가 표시됩니다.

  8. 메시지를 입력하고 저장을클릭합니다.

notebook을 저장하여 GitHub

Notebook에 대한 변경 내용은 Azure Databricks 수정 기록에 자동으로 저장되지만 변경 내용은 자동으로 GitHub 유지되지 않습니다.

  1. Notebook의 오른쪽 위에 있는 수정 기록을 클릭하여 기록 패널을 엽니다.

    History panel - save now

  2. 지금 저장을 클릭하여 GitHub Notebook을 저장합니다. Notebook 수정 버전 저장 대화 상자가 나타납니다.

  3. 필요에 따라 변경 내용에 대해 설명하는 메시지를 입력합니다.

  4. Git에 커밋도 선택되어 있는지 확인합니다.

    Save revision

  5. Save을 클릭합니다.

GitHub Notebook을 버전으로 되돌리거나 업데이트합니다.

Notebook을 연결하면 기록 패널을 다시 열 때마다 Azure Databricks Git과 기록을 동기화합니다. Git에 동기화되는 버전에는 항목의 일부로 커밋 해시가 있습니다.

  1. Notebook의 오른쪽 위에 있는 수정 기록을 클릭하여 기록 패널을 엽니다.

    History panel

  2. 기록 패널에서 항목을 선택합니다. Azure Databricks 해당 버전을 표시합니다.

  3. 이 버전 복원을클릭합니다.

  4. 확인을 클릭하여 해당 버전을 복원할 것인지 확인합니다.

  1. Notebook의 오른쪽 위에 있는 수정 기록을 클릭하여 기록 패널을 엽니다.

  2. Git 상태 표시줄에 Git: Synced 가표시됩니다.

    History panel - save now image

  3. Git: Synced를클릭합니다.

    Git preferences - unlink notebook

  4. Git 기본 설정 대화 상자에서 연결 해제를클릭합니다.

  5. 저장을 클릭합니다.

  6. 확인을 클릭하여 버전 제어에서 Notebook의 연결을 해제할 것인지 확인합니다.

분기 지원

리포지토리의 모든 분기에서 작업하고 Azure Databricks 내에 새 분기를 만들 수 있습니다.

분기 만들기

  1. Notebook의 오른쪽 위에 있는 수정 기록을 클릭하여 기록 패널을 엽니다.

  2. Git 상태 표시줄을 클릭하여 GitHub 패널을 엽니다.

  3. 분기 드롭다운을 클릭합니다.

  4. 분기 이름을 입력합니다.

    Create branch

  5. 드롭다운의 맨 아래에서 분기 만들기 옵션을 선택합니다. 부모 분기가 표시됩니다. 항상 현재 선택한 분기에서 분기합니다.

끌어오기 요청 만들기

  1. Notebook의 오른쪽 위에 있는 수정 기록을 클릭하여 기록 패널을 엽니다.

  2. Git 상태 표시줄을 클릭하여 GitHub 패널을 엽니다.

    Git preferences - create pull request

  3. PR 만들기를클릭합니다. GitHub 분기에 대한 끌어오기 요청 페이지가 열립니다.

분기 다시베이스

Azure Databricks 내에서 분기를 다시 지정할 수도 있습니다. 부모 분기에서 새 커밋을 사용할 수 있는 경우 다시베이스 링크가 표시됩니다. 부모 리포지토리의 기본 분기 위에만 재지정이 지원됩니다.

Rebase

예를 들어 에서 작업하고 있다고 databricks/reference-apps 가정합니다. 사용자 고유의 계정(예: brkyvz )으로 포크하고 라는 분기에서 작업을 시작합니다. my-branch 새 업데이트가 로 푸시되면 databricks:masterRebase 단추가 표시되고 변경 내용을 분기로 끌어올 수 brkyvz:my-branch 있습니다.

재지정은 Azure Databricks 약간 다르게 작동합니다. 다음 분기 구조를 가정합니다.

Before rebase branch structure

다시 기준이 되면 분기 구조는 다음과 같습니다.

After rebase branch structure

여기서 다른 것은 커밋 C5 및 C6이 C4 위에 적용 되지 않는 것입니다. 노트북에서 로컬 변경 내용으로 표시 됩니다. 모든 병합 충돌은 다음과 같이 표시 됩니다.

Merge conflict

그런 다음 지금 저장 단추를 사용 하 여 다시 GitHub에 커밋할 수 있습니다.

사용자가 방금 기준으로 하는 분기에서 분기 된 경우 어떻게 되나요?

분기 (예: branch-a )가 다른 분기의 기본 ( branch-b )이 고 주소를 다시 지정 하는 경우 걱정 하지 않아도 됩니다. 사용자가 다시 기반 하는 branch-b 경우 모든 것이 작동 합니다. 이 상황에서 가장 좋은 방법은 별도의 전자 필기장에 별도의 분기를 사용 하는 것입니다.

코드 검토에 대 한 모범 사례

Azure Databricks는 Git 분기를 지원 합니다.

  • 리포지토리의 모든 분기에 노트북을 연결할 수 있습니다. Azure Databricks 각 노트북에 대해 별도의 분기를 사용 하는 것이 좋습니다.
  • 개발 중에는 주 리포지토리의 기본이 아닌 분기 또는 리포지토리의 포크에 노트북을 연결할 수 있습니다. 변경 내용을 업스트림에 통합 하려면 Azure Databricks의 Git 기본 설정 대화 상자에서 create PR 링크를 사용 하 여 GitHub 끌어오기 요청을 만들 수 있습니다. Create PR 링크는 부모 리포지토리의 기본 분기에서 작업 하지 않는 경우에만 표시 됩니다.

GitHub Enterprise

중요

이 기능은 현재 프라이빗 미리 보기로 제공됩니다. 이를 시도하려면 Azure Databricks 담당자에게 문의하세요.

작업 영역 API 2.0 을 사용 하 여 프로그래밍 방식으로 전자 필기장을 만들고 GitHub Enterprise Server에서 코드 베이스를 관리할 수도 있습니다.

문제 해결

GitHub 기록 동기화와 관련된 오류가 발생하면 다음을 확인합니다.

  • 비어 있지 않은 초기화된 Git 리포지토리에만 Notebook을 연결할 수 있습니다. 웹 브라우저에서 URL을 테스트합니다.
  • GitHub 개인용 액세스 토큰이 활성화되어 있어야 합니다.
  • 프라이빗 GitHub 리포지토리를 사용하려면 리포지토리를 읽을 수 있는 권한이 있어야 합니다.
  • Notebook이 이름이 바뀐 GitHub 분기에 연결된 경우 변경 사항이 Azure Databricks에 자동으로 반영되지 않습니다. Notebook을 분기에 수동으로 다시 연결해야 합니다.