GitHub バージョン管理GitHub Version Control

このトピックでは、GitHub を使用して、UI でノートブックのバージョン管理を設定する方法について説明します。This topic describes how to set up version control for notebooks using GitHub through the UI. このドキュメントでは、UI を通じて GitHub の統合を設定する方法について説明しますが、 DATABRICKS CLIまたはWorkspace APIを使用して、github ツールを使用してノートブックのインポートとエクスポートを行ったり、ノートブックのバージョンを管理したりすることもできます。Although this document describes how to set up GitHub integration through the UI, you can also use the Databricks CLI or Workspace API to import and export notebooks and manage notebook versions using GitHub tools.

バージョン管理の構成Configure version control

バージョン管理を構成するには、バージョン管理プロバイダーでアクセス資格情報を作成し、それらの資格情報を Azure Databricks に追加する必要があります。Configuring version control involves creating access credentials in your version control provider and adding those credentials to Azure Databricks.

アクセス トークンを取得するGet an access token

GitHub にアクセスして、リポジトリへのアクセスを許可する個人用アクセストークンを作成します。Go to GitHub and create a personal access token that allows access to your repositories:

  1. GitHub から、Gravitar の横にある右上のメニューにアクセスし、 [設定] を選択します。From GitHub, access the menu on the upper right, next to your Gravitar, and select Settings.

  2. [開発者の設定] をクリックします。Click Developer settings.

  3. [個人用アクセストークン] タブをクリックします。Click the Personal access tokens tab.

  4. [新しいトークンの生成] ボタンをクリックします。Click the Generate new token button.

  5. トークンの説明を入力します。Enter a token description.

  6. [リポジトリ] アクセス許可を選択し、 [トークンの生成] ボタンをクリックします。Select the repo permission, and click the Generate token button.

    no-代替テキスト no-alternative-text

  7. トークンをクリップボードにコピーします。Copy the token to your clipboard. このトークンは、次の手順で Azure Databricks に入力します。You enter this token in Azure Databricks in the next step.

個人用アクセストークンを作成する方法の詳細については、 GitHub のドキュメントを参照してください。See the GitHub documentation to learn more about how to create personal access tokens.

アクセストークンを Azure Databricks に保存しますSave your access token to Azure Databricks

  1. 画面の右上にあるユーザーアイコン Account アイコン をクリックし、 [ユーザー設定] を選択します。Click the User icon Account Icon at the top right of your screen and select User Settings.

    AccountSettings AccountSettings

  2. [Git 統合] タブをクリックします。Click the Git Integration tab.

  3. 以前に資格情報を入力した場合は、 [トークンまたはアプリケーションパスワードの変更] ボタンをクリックします。If you have previously entered credentials, click the Change token or app password button.

  4. Git プロバイダー ドロップダウンリストで、 GitHub を選択します。In the Git provider drop-down, select GitHub.

    no-代替テキスト no-alternative-text

  5. トークンを [トークンまたはアプリケーションパスワード] フィールドに貼り付け、 [保存] をクリックします。Paste your token into the Token or app password field and click Save.

ノートブックのリビジョンを操作する Work with notebook revisions

[履歴] パネルでノートブックのリビジョンを操作します。You work with notebook revisions in the History panel. ノートブックの右上にある リビジョン履歴 をクリックして、履歴 パネルを開きます。Open the history panel by clicking Revision history at the top right of the notebook.

no-代替テキスト no-alternative-text

注意

[履歴] パネルが開いている間は、ノートブックを変更することはできません。You cannot modify a notebook while the History panel is open.

  1. [履歴] パネルを開きます。Open the History panel. Git ステータスバーに git: リンクされていませんThe Git status bar displays Git: Not linked.

    no-代替テキスト no-alternative-text

  2. [Git: リンクされていません] をクリックします。Click Git: Not linked.

    [Git の基本設定] ダイアログが表示されます。The Git Preferences dialog displays. Notebook を初めて開いたときに、そのノートブックは GitHub にないため、状態は [リンク解除中] になります。The first time you open your notebook, the Status is Unlink, because the notebook is not in GitHub.

    no-代替テキスト no-alternative-text

  3. 状態 フィールドで、リンク をクリックします。In the Status field, click Link.

  4. [リンク] フィールドに、GitHub リポジトリの URL を貼り付けます。In the Link field, paste the URL of the GitHub repository.

  5. [分岐] ドロップダウンをクリックし、分岐を選択するか、新しい分岐の名前を入力します。Click the Branch drop-down and select a branch or type the name of a new branch.

  6. [Git リポジトリのパス] フィールドに、ファイルを格納するリポジトリ内の場所を指定します。In the Path in Git Repo field, specify where in the repository to store your file.

    Python notebook には、推奨される既定のファイル拡張子 .py があります。Python notebooks have the suggested default file extension .py. @No__t_0 を使用すると、ノートブックは iPython notebook 形式で保存されます。If you use .ipynb, your notebook will save in iPython notebook format. ファイルが GitHub に既に存在する場合は、ファイルの URL を直接コピーして貼り付けることができます。If the file already exists on GitHub, you can directly copy and paste the URL of the file.

  7. [保存] をクリックして、ノートブックのリンクを終了します。Click Save to finish linking your notebook. このファイルが以前に存在していなかった場合は、 [このファイルを GitHub リポジトリに保存する] オプションのプロンプトが表示されます。If this file did not previously exist, a prompt with the option Save this file to your GitHub repo displays.

  8. メッセージを入力し、 [保存] をクリックします。Type a message and click Save.

Notebook を GitHub に保存するSave a notebook to GitHub

ノートブックに加えた変更は、Azure Databricks のリビジョン履歴に自動的に保存されますが、変更は GitHub に自動的に保持されません。While the changes that you make to your notebook are saved automatically to the Azure Databricks revision history, changes do not automatically persist to GitHub.

  1. [履歴] パネルを開きます。Open the History panel.

    SaveNow SaveNow

  2. [今すぐ保存] をクリックして、Notebook を GitHub に保存します。Click Save Now to save your notebook to GitHub. [ノートブックのリビジョンを保存] ダイアログボックスが表示されます。The Save Notebook Revision dialog displays.

  3. 必要に応じて、変更内容を説明するメッセージを入力します。Optionally, enter a message to describe your change.

  4. また、Git へのコミットも選択されていることを確認します。Make sure that Also commit to Git is selected.

    no-代替テキスト no-alternative-text

  5. [保存] をクリックします。Click Save.

GitHub からノートブックをバージョンに戻す、または更新するRevert or update a notebook to a version from GitHub

Notebook をリンクすると、[履歴] パネルを再び開くたびに、Azure Databricks によって履歴が Git と同期されます。Once you link a notebook, Azure Databricks syncs your history with Git every time you re-open the History panel. Git に同期するバージョンは、エントリの一部としてコミットハッシュを持ちます。Versions that sync to Git have commit hashes as part of the entry.

  1. [履歴] パネルを開きます。Open the History panel.

    github-同期 github-sync

  2. [履歴] パネルでエントリを選択します。Choose an entry in the History panel. Azure Databricks そのバージョンが表示されます。Azure Databricks displays that version.

  3. [このバージョンの復元] をクリックします。Click Restore this version.

  4. [確認] をクリックして、そのバージョンを復元することを確認します。Click Confirm to confirm that you want to restore that version.

  1. [履歴] パネルを開きます。Open the History panel.

  2. Git ステータスバーにgit: 同期済みの状態が表示されます。The Git status bar displays Git: Synced.

    no-代替テキスト no-alternative-text

  3. [ Git: 同期済み] をクリックします。Click Git: Synced.

    no-代替テキスト no-alternative-text

  4. Git の基本設定 ダイアログで、リンクの解除 をクリックします。In the Git Preferences dialog, click Unlink.

  5. [保存] をクリックします。Click Save.

  6. [確認] をクリックして、バージョンコントロールからノートブックのリンクを解除することを確認します。Click Confirm to confirm that you want to unlink the notebook from version control.

ブランチのサポートBranch support

リポジトリの任意のブランチを操作し、Azure Databricks 内に新しいブランチを作成できます。You can work on any branch of your repository and create new branches inside Azure Databricks.

ブランチを作成するCreate a branch

  1. [履歴パネル] を開きます。Open History panel.

  2. Git ステータスバーをクリックして、GitHub パネルを開きます。Click the Git status bar to open the GitHub panel.

  3. [分岐] ドロップダウンをクリックします。Click the Branch dropdown.

  4. ブランチ名を入力してください。Enter a branch name.

    no-代替テキスト no-alternative-text

  5. ドロップダウンの下部にある [分岐の作成] オプションを選択します。Select the Create Branch option at the bottom of the dropdown. 親分岐が示されます。The parent branch is indicated. 現在選択されているブランチから常に分岐します。You always branch from your current selected branch.

pull request を作成するCreate a pull request

  1. [履歴パネル] を開きます。Open History panel.

  2. Git ステータスバーをクリックして、GitHub パネルを開きます。Click the Git status bar to open the GitHub panel.

    no-代替テキスト no-alternative-text

  3. [PR の作成] をクリックします。Click Create PR. GitHub のブランチのプル要求ページが開きます。GitHub opens to a pull request page for the branch.

ブランチをリベースするRebase a branch

Azure Databricks 内でブランチを再配置することもできます。You can also rebase your branch inside Azure Databricks. 親ブランチで新しいコミットが使用可能かどうかは、リベースリンクに表示されます。The Rebase link displays if new commits are available in the parent branch. 親リポジトリの既定のブランチの上位にあるリベースのみがサポートされています。Only rebasing on top of the default branch of the parent repository is supported.

no-代替テキスト no-alternative-text

たとえば、databricks/reference-apps で作業しているとします。For example, assume that you are working on databricks/reference-apps. これを独自のアカウント (brkyvz など) にフォークし、my-branch と呼ばれるブランチで作業を開始します。You fork it into your own account (for example, brkyvz) and start working on a branch called my-branch. 新しい更新プログラムが databricks:master にプッシュされると、[Rebase] ボタンが表示され、ブランチ brkyvz:my-branch に変更を取り込むことができます。If a new update is pushed to databricks:master, then the Rebase button displays, and you will be able to pull the changes into your branch brkyvz:my-branch.

Azure Databricks では、リベースの動作が少し異なります。Rebasing works a little differently in Azure Databricks. 次の分岐構造を想定します。Assume the following branch structure:

no-代替テキスト no-alternative-text

リベース後、分岐構造は次のようになります。After a rebase, the branch structure will look like:

no-代替テキスト no-alternative-text

ここでの違いは、コミット C5 と C6 が C4 の上に適用されないことです。What’s different here is that Commits C5 and C6 will not apply on top of C4. これらは、ノートブックにローカルの変更として表示されます。They will appear as local changes in your notebook. マージの競合は、次のように表示されます。Any merge conflict will show up as follows:

no-代替テキスト no-alternative-text

その後、 [今すぐ保存] ボタンを使用してもう一度 GitHub にコミットできます。You can then commit to GitHub once again using the Save Now button.

リベースしたブランチから他のユーザーが分岐した場合、どうなりますか。What happens if someone branched off from my branch that I just rebased?

ブランチ (branch-a など) が別のブランチ (branch-b) のベースであり、リベースする場合は、心配は必要ありません。If your branch (for example, branch-a) was the base for another branch (branch-b), and you rebase, you need not worry! ユーザーも branch-b rebases すると、すべての処理が行われます。この場合のベストプラクティスは、個別のノートブックに個別の分岐を使用することです。Once a user also rebases branch-b, everything will work out. The best practice in this situation is to use separate branches for separate notebooks.

コードレビューのベストプラクティスBest practices for code reviews

Azure Databricks は、Git 分岐をサポートしています。Azure Databricks supports Git branching.

  • 自分のフォークにノートブックをリンクして、分岐を選択することができます。You can link a notebook to your own fork and choose a branch.
  • ノートブックごとに個別のブランチを使用することをお勧めします。We recommend using separate branches for each notebook.
  • 変更に問題がなければ、[Git の基本設定] ダイアログの [PR の作成] リンクを使用して、GitHub のプル要求ページに移動できます。Once you are happy with your changes, you can use the Create PR link in the Git Preferences dialog to take you to GitHub’s pull request page.
  • 親リポジトリの既定のブランチに対して作業していない場合にのみ、PR の作成リンクを表示します。The Create PR link displays only if you’re not working on the default branch of the parent repository.

GitHub EnterpriseGitHub Enterprise

重要

GitHub Enterprise Server との統合はサポートされていません。Integration with GitHub Enterprise Server is not supported. ただし、ワークスペース APIを使用して、プログラムによって notebook を作成し、GitHub Enterprise Server でコードベースを管理できます。However, you can use the Workspace API to programmatically create notebooks and manage the code base in GitHub Enterprise Server.

トラブルシューティングTroubleshooting

GitHub 履歴の同期に関連するエラーが発生した場合は、次のことを確認してください。If you receive errors related to syncing GitHub history, verify the following:

  1. GitHub でリポジトリを初期化しましたが、空ではありません。You have initialized the repository on GitHub, and it isn’t empty. 入力した URL を試して、GitHub リポジトリに転送されることを確認します。Try the URL that you entered and verify that it forwards to your GitHub repository.
  2. 個人用アクセストークンがアクティブになっています。Your personal access token is active.
  3. リポジトリがプライベートである場合は、リポジトリに対して少なくとも (GitHub を使用して) 読み取りレベルのアクセス許可を持っている必要があります。If the repository is private, you must have at least read level permissions (through GitHub) on the repository.