ノートブックの Git バージョン管理 (レガシ)
従来のノートブックの Git 統合のサポートは、2024 年 1 月 31 日に削除されました。 Databricks では、Databricks Git フォルダーを使用して、Databricks での作業をリモート Git リポジトリと同期することをお勧めします。
この記事では、ノートブック (レガシ機能) の Git バージョン管理を設定する方法について説明します。 また、Databricks CLI またはワークスペース API を使用して、ノートブックをインポートおよびエクスポートしたり、ローカル開発環境で Git 操作を実行したりすることもできます。
Git バージョン管理の有効化と無効化
デフォルトでは、バージョン管理は有効になっています。 この設定を切り替えるには:
- [設定 ] > [ワークスペースの設定 ] に移動します。
- 「 詳細 」セクションで、「 ノートブック Git バージョン管理」 トグルの選択を解除します。
バージョン管理の構成
バージョン管理を構成するには、Git プロバイダーでアクセス資格情報を作成し、それらの資格情報を Databricks に追加します。
ノートブック バージョンを操作する
履歴パネルでノートブックのバージョンを操作します。 右側のサイドバーで [ ] をクリックして、履歴パネルを開きます。
履歴パネルが開いている間は、ノートブックを変更することはできません。
ノートブックを GitHub にリンクする
-
右側のサイドバーで [
] をクリックします。 Git のステータスバーに Git: Not linked と表示されます。
-
[ Git: リンクされていません ] をクリックします。
「Git 設定」ダイアログが表示されます。 ノートブックを初めて開くと、ノートブックが GitHub にないため、 [状態] は [リンク解除 ] になります。
-
[ステータス] フィールドで、[ リンク ] をクリックします。
-
[リンク] フィールドに、GitHub リポジトリの URL を貼り付けます。
-
[ブランチ ] ドロップダウンをクリックしてブランチを選択するか、新しいブランチの名前を入力します。
-
[Path in Git folder] フィールドで、リポジトリ内のどこにファイルを保存するかを指定します。
Python ノートブックには、推奨されるデフォルトのファイル拡張子
.py
があります。.ipynb
を使用すると、ノートブックは iPython ノートブック形式で保存されます。ファイルが GitHub に既に存在する場合は、ファイルの URL を直接コピーして貼り付けることができます。 -
[ 保存 ] をクリックして、ノートブックのリンクを終了します。 このファイルが以前に存在していなかった場合は、 [ このファイルを GitHub リポジトリに保存する ] オプションを含むプロンプトが表示されます。
-
メッセージを入力し、[ 保存 ] をクリックします。
ノートブックを GitHub に保存する
ノートブックに加えた変更は Databricks のバージョン履歴に自動的に保存されますが、変更は自動的に GitHub に保持されません。
-
右側のサイドバーで
をクリックして、履歴パネルを開きます。
-
[ Save Now ] をクリックして、ノートブックを GitHub に保存します。 「ノートブック・バージョンの保存」ダイアログが表示されます。
-
必要に応じて、変更を説明するメッセージを入力します。
-
[Git にもコミットする ] が選択されていることを確認します。
-
[ 保存 ]をクリックします。
ノートブックを GitHub のバージョンに戻すか更新する
ノートブックをリンクすると、履歴パネルを再度開くたびに、Databricks は履歴を Git と同期します。 Git に同期するバージョンには、エントリの一部としてコミット ハッシュがあります。
-
右側のサイドバーで
をクリックして、履歴パネルを開きます。
-
履歴パネルでエントリを選択します。 Databricks にそのバージョンが表示されます。
-
[ このバージョンを復元 ] をクリックします。
-
[確認 ] をクリックして、そのバージョンを復元することを確認します。
ノートブックのリンクを解除する
-
右側のサイドバーで
をクリックして、履歴パネルを開きます。
-
Git のステータスバーに Git: Synchronized と表示されます。
-
[ Git: 同期済み ] をクリックします。
-
「Git 設定」ダイアログで、「 リンク解除 」をクリックします。
-
[ 保存 ]をクリックします。
-
[確認 ] をクリックして、ノートブックをバージョン管理からリンク解除することを確認します。
ブランチを使用する
リポジトリの任意のブランチで作業し、Databricks 内に新しいブランチを作成できます。
ブランチを作成する
-
右側のサイドバーで
をクリックして、履歴パネルを開きます。
-
Git ステータスバーをクリックして GitHub パネルを開きます。
-
[ブランチ] ドロップダウンをクリックします。
-
ブランチ名を入力します。
-
ドロップダウンの下部にある [ブランチの作成 ] オプションを選択します。 親ブランチが示されます。 常に、現在選択しているブランチから分岐します。
pull request を作成する
-
右側のサイドバーで
をクリックして、履歴パネルを開きます。
-
Git ステータスバーをクリックして GitHub パネルを開きます。
-
[PR の作成 ] をクリックします。GitHub が開き、ブランチのプル要求ページが表示されます。
ブランチのリベース
また、ブランチを Databricks 内にリベースすることもできます。 [リベース ] リンクは、親ブランチで新しいコミットが使用可能な場合に表示されます。親リポジトリのデフォルト ブランチの上でのリベースのみがサポートされています。
たとえば、 databricks/reference-apps
で作業しているとします。 それを自分のアカウント ( brkyvz
など) にフォークし、 my-branch
というブランチで作業を開始します。 新しい更新が databricks:master
にプッシュされると、 Rebase
ボタンが表示され、変更をブランチ brkyvz:my-branch
にプルできるようになります。
リベースは Databricks では少し異なる動作をします。 次の分岐構造を想定します。
リベース後、ブランチ構造は次のようになります。
ここで異なるのは、コミット C5 と C6 は C4 の上には適用されないことです。 これらは、ノートブックにローカルの変更として表示されます。 マージ競合は次のように表示されます。
その後、[ 今すぐ保存 ] ボタンを使用して、もう一度 GitHub にコミットできます。
私がリベースしたばかりのブランチから誰かが分岐した場合はどうなりますか?
あなたのブランチ (たとえば、 branch-a
) が別のブランチ (branch-b
) のベースであった場合でも、リベースしても心配する必要はありません。 ユーザーが branch-b
もリベースすると、すべてがうまくいきます。 この状況でのベスト プラクティスは、個別のノートブックに個別のブランチを使用することです。
コードレビューのベストプラクティス
Databricks では、Git ブランチがサポートされています。
- ノートブックは、リポジトリ内の任意のブランチにリンクできます。 Databricks では、ノートブックごとに個別のブランチを使用することをお勧めします。
- 開発中に、ノートブックをリポジトリのフォークまたはメインリポジトリのデフォルト以外のブランチにリンクできます。 変更をアップストリームに統合するには、Databricks の [Git Preferences ] ダイアログの [ Create PR ] リンクを使用して、GitHub プルリクエストを作成できます。[Create PR Risk] リンクは、親リポジトリのデフォルト ブランチで作業していない場合にのみ表示されます。
トラブルシューティング
GitHub 履歴の同期に関連するエラーが発生した場合は、次の点を確認してください。
- ノートブックをリンクできるのは、空でない初期化された Git リポジトリのみです。 Web ブラウザーで URL をテストします。
- GitHub の個人用アクセス トークンがアクティブである必要があります。
- プライベートな GitHub リポジトリを使用するには、リポジトリを読み取る権限が必要です。
- 名前が変更された GitHub ブランチにノートブックがリンクされている場合、その変更は Databricks に自動的に反映されません。 ノートブックをブランチに手動で再リンクする必要があります。
Databricks Git フォルダーに移行する
従来の Git バージョン管理から Databricks Git フォルダーに移行する必要があるユーザーは、次のガイドを使用できます。