Notebook에 대한 Git 버전 제어(레거시)

참고

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

이 문서에서는 UI를 통해 GitHub를 사용하여 메모장에 대한 버전 제어를 설정하는 방법을 설명합니다. Databricks CLI 또는 작업 영역 API 2.0을 사용하여 Notebook을 가져오고 내보내고 로컬 개발 환경에서 Git 작업을 수행할 수도 있습니다.

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

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

버전 제어 구성

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

Notebook 수정 작업

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

수정 기록

참고

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

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

    Git 상태 표시줄

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

    Git 기본 설정 대화 상자가 표시됩니다. Notebook을 처음 열면 Notebook이 GitHub가 없기 때문에 상태가 연결 끊기로 되어 있습니다.

    Git 기본 설정 - 새 Notebook 연결

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

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

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

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

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

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

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

GitHub에 Notebook 저장

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

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

    기록 패널 - 지금 저장

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

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

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

    저장 버전

  5. 저장을 클릭합니다.

GitHub 버전으로 Notebook 되돌리기 또는 업데이트

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

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

    기록 패널

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

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

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

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

  2. Git 상태 표시줄에 Git: 동기화됨이 표시됩니다.

    기록 패널 - 지금 이미지 저장

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

    Git 기본 설정 - Notebook 연결 해제

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

  5. 저장을 클릭합니다.

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

분기 사용

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

분기 만들기

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

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

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

  4. 분기 이름 입력

    분기 만들기

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

끌어오기 요청 만들기

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

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

    Git 기본 설정 - 끌어오기 요청 만들기

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

분기 다시 지정

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

다시 지정

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

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

다시 지정 전 분기 구조

다시 지정 후 분기 구조는 다음과 같습니다.

다시 지정 후 분기 구조

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

병합 충돌

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

방금 다시 지정한 내 분기에서 분기한 사람이 있으면 어떻게 되나요?

분기(예: branch-a)가 다른 분기(branch-b)의 기반이 되었으며 다시 기반으로 하는 경우 걱정할 필요가 없습니다. 사용자가 branch-b를 다시 지정하면 모든 것이 작동합니다. 이 상황에서 모범 사례는 별도의 Notebook에 대해 별도의 분기를 사용하는 것입니다.

코드 검토에 대한 모범 사례

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

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

문제 해결

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

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