Databricks Git フォルダーで Git 操作を実行する
このページでは、Git フォルダーを使用して、複製、分岐、コミット、プッシュなどの一般的な Git 操作を Databricks ワークスペースで実行する方法について説明します。
このガイドでは、次の Git 操作について説明します。
セットアップと構成 | 日々のワークフロー | 高度な操作 |
|---|---|---|
リポジトリをクローンする
リモート リポジトリのクローンを作成すると、 Databricksワークスペースにリポジトリのコンテンツを含むGitフォルダーを作成し、変更を追跡します。 Databricks UI または Web ポータルを使用してGitフォルダーを作成できます。
- Git フォルダーを作成する親フォルダーに対する
CAN MANAGE権限が必要です。 - ワークスペースには Git 資格情報が設定されている必要があります。「Git プロバイダーを Databricks に接続する」を参照してください。
UIからクローン
-
サイドバーで 「ワークスペース」 を選択し、Git リポジトリのクローンを作成するフォルダーを参照します。
-
[作成] > [Git フォルダー] をクリックします。
-
「Git フォルダーの作成 」ダイアログで、以下の情報を入力します。
フィールド | 説明 |
|---|---|
GitリポジトリのURL | クローンを作成する Git リポジトリの URL (形式は |
Gitプロバイダー | クローンを作成するリポジトリの Git プロバイダー。 |
Gitフォルダ名 | クローンされたリポジトリの内容が含まれるワークスペース内のフォルダーの名前。 |
スパースチェックアウトモード | コーンパターンを使用してリポジトリのディレクトリのサブセットのみをクローンするスパースチェックアウトを使用するかどうか。これは、リポジトリのサイズ制限を超えた場合に役立ちます。 |
Git CLI を使用する(ベータ版) | Databricks ターミナルから直接標準の Git コマンドを実行できるようにします。これにより、コミット前フック、Git サブモジュール、大容量ファイル ストレージ (LFS) などの高度な操作にアクセスできるようになります。「Git CLI コマンドの使用 (ベータ版)」を参照してください。 |
- 「Git フォルダーの作成」を クリックします。リモート リポジトリの内容がワークスペースに複製され、サポートされている Git 操作を開始できます。
Webターミナルからクローンする
Web ターミナルから直接CLIアクセスしてGitフォルダーを作成することもできます。
-
Webポータルにアクセスします。 Databricks Web ポータルの実行シェル コマンドを参照してください。
-
/Workspaceの親ディレクトリに移動します:Bashcd /Workspace/Users/<your-email>/<project>
/Reposまたは既存の Git フォルダー内にGit CLI アクセスを使用して Git フォルダーを作成することはできません。
-
リポジトリをクローンします:
Bashgit clone <remote-url>git cloneコマンドは、ワークスペースで構成された Git 資格情報を使用します。「Git プロバイダーを Databricks に接続する」を参照してください。 -
ブラウザを更新すると、ワークスペース ファイル ブラウザに新しいフォルダが表示されます。
Git CLI コマンドを使用する (ベータ版)
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。「Databricks プレビューの管理」を参照してください。
Git CLI アクセスを備えた Git フォルダーを使用すると、Databricks ターミナルから直接標準の Git コマンドを実行できます。あなたはできる:
git stash、git pull --force、git rebase -iを含む任意の Git コマンドを実行します。- コミット前のフックにリンティングとコードスキャンを統合します。
- 標準の Git フォルダーの 2 GB のメモリと 4 GB のディスク制限を超えるリポジトリを操作します。
- Git サブモジュールと Large File Storage (LFS) を使用します。
- リモート リポジトリにプッシュする前に、複数のコミットをローカルでステージングします。
Git CLIアクセスを使用するには、ワークスペースの環境バージョン 4 以降でサーバレス コンピュートが有効になっている必要があります。
Git CLI アクセスで Git フォルダを作成する
CLI アクセスで Git フォルダーを作成するには:
- Web ポータルを使用している場合、クローンを作成したリポジトリには自動的にGit CLIアクセスが許可されます。
- UIを使用する場合は、Git フォルダーを作成するときに 「Git CLI を使用する」 を有効にします。
CLIアクセスでGitフォルダーを作成した後、Web ターミナルから標準のGitコマンドを実行します。
cd /Workspace/Users/<your-email>/<project>/my-repo
# Interactive rebase
git rebase -i main
# Stash uncommitted changes
git stash
# Work with submodules
git submodule update --init --recursive
Git CLI の制限
CLI アクセスが可能な Git フォルダーには次の制限があります。
- リモート URL 許可リストが有効になっているワークスペースでは、Git CLI 機能を使用できません。
- Git CLI コマンドは、ノートブックの出力のコミットをブロックする管理者設定を無視します。
- Repos API は、CLI アクセスが可能な Git フォルダーではサポートされていません。
- 既存の Git フォルダーに対して Git CLI アクセスを有効にすることはできません。
Git CLI 操作のトラブルシューティング
- ターミナルですべての操作の資格情報が要求されます : ワークスペースで Git CLI 機能が有効になっていません。プレビューが有効になっていることを確認するには、ワークスペース管理者に問い合わせてください。
- CLI アクセスを有効にできません : リモート URL 許可リストを持つワークスペースでは Git CLI 機能を使用できません。ワークスペースのネットワーク構成を確認するには、ワークスペース管理者に問い合わせてください。
- Git 操作が権限エラーで失敗しました : 親フォルダーに対する
CAN MANAGE権限があること、およびワークスペースの Git 資格情報が有効であることを確認してください。「Git プロバイダーを Databricks に接続する」を参照してください。
Git ダイアログにアクセスする
ノートブックまたは Databricks Git フォルダー ブラウザーから Git ダイアログにアクセスします。
-
ノートブックから、現在の Git ブランチを識別するノートブック名の横にあるボタンをクリックします。

-
Databricks Git フォルダー ブラウザーで、リポジトリ名の横にある Git をクリックします。
Git 操作を実行できる全画面ダイアログが表示されます。

- 現在の作業ブランチ。ここで他のブランチを選択できます。他のユーザーがこの Git フォルダーにアクセスできる場合、同じワークスペースを共有しているときは、ブランチを変更すると、そのユーザーのブランチも変更されます。この問題を回避するには、推奨されるベスト プラクティスを参照してください。
- 新しいブランチを作成します。
- 現在のブランチにチェックインされたファイル アセットとサブフォルダー。
- 現在のブランチ履歴を表示します。
- リモート Git リポジトリからコンテンツをプルします。
- 変更に対するコミット メッセージとオプションの詳細な説明を追加します。
- 作業を作業ブランチにコミットし、更新されたブランチをリモート Git リポジトリにプッシュします。
クリックケバブ メニューを使用して、ハードリセット、マージ、リベースなどの追加の Git ブランチ操作を選択します。

新しいブランチを作る
新しいブランチを作成するには:
- Git ダイアログを開きます。
- 「ブランチの作成」を クリックします。
- 新しいブランチの名前を入力し、ベース ブランチを選択します。
- 作成 をクリックします。

別のブランチに切り替える
別のブランチをチェックアウトするには、Git ダイアログのブランチ ドロップダウンを使用します。

現在のブランチのコミットされていない変更は、新しいブランチのコードと競合しない場合は、新しいブランチに引き継がれ、コミットされていない変更として表示されます。コミットされていない変更を引き継ぐつもりがない場合は、ブランチ切り替えの前後の変更を破棄します。
ブランチのローカル バージョンは、リモート ブランチを削除した後も、関連付けられている Git フォルダー内に最大 30 日間残ります。Git フォルダー内のローカル ブランチを完全に削除するには、リポジトリを削除します。
ブランチを切り替えると、新しいブランチにワークスペース アセットが含まれていない場合、ワークスペース アセットが削除される可能性があります。現在のブランチに戻すと、削除されたアセットが新しい ID と URL で再作成されます。この変更は元に戻せません。
Git フォルダーからアセットを共有またはブックマークした場合は、切り替える前に新しいブランチにアセットが存在することを確認してください。
変更をコミットしてプッシュする
新しいノートブックまたはファイルを追加したり、既存のノートブックまたはファイルに変更を加えたりすると、Git フォルダー UI で変更が強調表示されます。

変更に必要なコミット メッセージを追加し、 [コミット & プッシュ] をクリックして変更をリモートGitリポジトリにプッシュします。
デフォルト ブランチにコミットする権限がない場合は、新しいブランチを作成し、Git プロバイダーのインターフェースを使用してプル リクエストを作成し、それをデフォルト ブランチにマージします。
ノートブックがソース ファイル形式 ( .py 、 .scala 、 .sql 、 .r ) で保存されている場合、ノートブックの出力はコミットに含まれません。 ipynb形式を使用したノートブックのコミット出力については、 ipynbノートブック出力のアーティファクトコミットの制御」を参照してください。
変更をプルする
リモート Git リポジトリから変更をプルするには、Git 操作ダイアログで [プル] をクリックします。ノートブックやその他のファイルは、リモート Git リポジトリ内の最新バージョンに自動的に更新されます。リモート リポジトリから取得された変更が Databricks のローカルの変更と競合する場合は、マージの競合を解決します。
アップストリームの変更をプルする Git 操作により、ノートブックの状態がクリアされます。「受信した変更によってノートブックの状態がクリアされる」を参照してください。
Gitフォルダで共同作業する
Databricks Git フォルダーはワークスペース内の埋め込み Git クライアントとして動作し、Git ベースのソース管理とバージョン管理を通じて共同作業を行うことができます。効果的なチームコラボレーションのために:
- 各チーム メンバーには、リモート Git リポジトリにマップされた独自の Git フォルダーがあり、そこで各自の開発ブランチで作業します。
- 各 Git フォルダーに対して Git 操作を実行できるのは 1 人のユーザーのみです。複数のユーザーが同じフォルダーに対して Git 操作を実行すると、1 人のユーザーが意図せず全員のブランチを切り替えてしまうなど、ブランチ管理の問題が発生する可能性があります。
Git フォルダ構成を共同作業者と共有するには:
- [共有] をクリックします。
- 「リンクをコピー」をクリックして Git フォルダーを作成します 。
- URL を共同作業者に送信します。
- 共同作業者が URL を開くと、Git フォルダー構成が事前に入力されたダイアログが表示されます。
- 「Git フォルダーの作成」を クリックして、リポジトリを現在の作業フォルダーの下の自分のワークスペースに複製します。
ブランチのマージ
Databricks Git フォルダーのマージ関数は、 git mergeを使用して、あるブランチのコミット履歴を別のブランチに結合します。Git 初心者の場合、強制プッシュを必要とせず、コミット履歴を書き換えることもないため、Databricks では rebase ではなく merge を使用することをお勧めします。
ブランチを別のブランチにマージするには、ケバブメニューをクリックして、 マージ を選択します。
- マージの競合がある場合は、Git フォルダー UI で解決します。
- 競合がない場合、マージは
git pushを使用してリモート Git リポジトリにプッシュされます。
マージ競合の解決
マージ競合は、プル、リベース、マージ操作中など、Git が異なるソースからのファイルの同じ行への変更を自動的に調整できない場合に発生します。
マージの競合を解決するには、競合するファイルと解決オプションを表示する Git フォルダー UI を使用します。
- 手動でファイルを編集し、保持する変更を選択します。
- 1 つのバージョンを完全に受け入れるには、 「現在のすべての変更を保持」 または 「受信したすべての変更を取得」 を選択します。
- 操作を中止し、競合する変更を破棄して再試行してください。

手動で競合を解決する
手動での競合解決により、どの競合行を受け入れるかを決定できます。競合を解決するには、ファイルの内容を直接編集します。

競合を解決するには、保持するコード行を選択し、Git マージ競合マーカーを含む他のすべての行を削除します。完了したら、[ 解決済みとしてマーク] を選択します。
マージの競合を解決するときに間違った選択をした場合は、 [中止] をクリックしてプロセスを中止し、すべてを元に戻します。すべての競合が解決されたら、 「マージを続行」 または 「リベースを続行」 をクリックして競合を解決し、操作を完了します。
ブランチをリベースする
Databricks Git フォルダーの rebase 関数は、 git rebaseを使用して、ターゲット ブランチの上にコミットを再適用し、線形履歴を作成することで、あるブランチから別のブランチに変更を統合します。
ブランチを別のブランチにリベースするには、ケバブ メニューをクリックし、 Rebase を選択してから、ターゲット ブランチを選択します。
- リベース後、Git フォルダーは
git commitとgit push --forceを実行してリモート リポジトリを更新します。 - Rebase はコミット履歴を書き換えるため、同じリポジトリで作業している共同作業者にとってバージョン管理の問題が発生する可能性があります。
ブランチをリセットする
Git フォルダー UI から Git リセットを実行します。この操作は、 git reset --hardとgit push --forceを組み合わせたものと同じです。
Git リセットは、ブランチの内容と履歴を別のブランチの最新の状態に置き換えます。編集内容が上流ブランチと競合し、上流ブランチにリセットしたときにそれらの編集内容が失われても構わない場合にこれを使用できます。git reset --hardについての詳細をご覧ください。
リモートブランチにリセットする
このシナリオの git reset を使用すると、次のようになります。
- 選択したブランチ (
feature_aなど) を別のブランチ (mainなど) にリセットした - また、アップストリーム (リモート) ブランチ
feature_aを main にリセットします。
リセットすると、ブランチのローカルバージョンとリモートバージョンの両方で、コミットされていない変更とコミットされた変更がすべて失われます。
ブランチをリモートブランチにリセットするには:
-
Git フォルダー UI の [ブランチ ] メニューで、リセットするブランチを選択します。
-
リセット を選択する
ケバブメニュー。

-
リセットするブランチを選択し、 「実行Gitリセット」 をクリックします。
スパースチェックアウトモードを設定してください
スパース チェックアウトは、Databricks 内のリモート リポジトリのディレクトリのサブセットのみを複製して操作できるようにするクライアント側の設定です。これは、リポジトリのサイズが Databricks でサポートされている制限を超える場合に特に便利です。
新しいリポジトリを複製するときにスパース チェックアウト モードを有効にします。スパースチェックアウトモードは、一度有効にすると無効にすることはできません。
-
「Git フォルダーの作成」 ダイアログで、 スパース チェックアウト モード を有効にします。
![[Git フォルダの追加] ダイアログの [スパース チェックアウト] オプション。](/aws/ja/assets/images/sparse-checkout-option-a15124edda5dea8085f8545f304079f7.png)
-
[コーンパターン] ボックスで、必要なコーンチェックアウトパターン を指定します。 複数のパターンを改行で区切ります。
コーンパターンのしくみ
スパース チェックアウト モードでのコーン パターンの動作を理解するには、リモート リポジトリ構造を表す次の図を参照してください。

スパースチェックアウトモード を選択しても、コーンパターンを指定しない場合は、デフォルトのコーンパターンが適用されます。これにはルート内のファイルのみが含まれ、サブディレクトリは含まれないため、リポジトリ構造は次のようになります。

スパースチェックアウトコーンパターンをparent/child/grandchildに設定すると、 grandchildディレクトリのすべての内容が再帰的に含められます。/parent 、 /parent/child 、およびルート ディレクトリの直下にあるファイルも含まれます。次の図のディレクトリ構造を参照してください。

除外動作 ( ! ) は、Git コーン パターン構文ではサポートされていません。
スパース チェックアウトの設定を変更する
リポジトリを作成した後、 [設定] > [詳細設定] > [コーン パターン] からスパース チェックアウト コーン パターンを編集します。
次の動作に注意してください。
-
コーンパターンからフォルダーを削除すると、コミットされていない変更がない場合、Databricks から削除されます。
-
スパース チェックアウト コーン パターンを編集してフォルダーを追加すると、追加のプルを必要とせずにフォルダーが Databricks に追加されます。
-
フォルダー内にコミットされていない変更がある場合、スパース チェックアウト パターンを変更してフォルダーを削除することはできません。
たとえば、フォルダー内のファイルを編集して変更をコミットしない場合、そのフォルダーを除外するようにスパース チェックアウト パターンを変更しようとすると、パターンは受け入れられますが、フォルダーは削除されません。そのフォルダーを含めるようにパターンを元に戻し、変更をコミットしてから、新しいパターンを再度適用する必要があります。
スパースチェックアウトで変更を加える
既存のファイルを編集し、Git フォルダーからコミットしてプッシュします。新しいファイルのフォルダーを作成するときは、そのリポジトリに指定したコーン パターンにそれらを含めます。
コーン パターンの外側に新しいフォルダーを含めると、コミットおよびプッシュ操作中にエラーが発生します。これを修正するには、コミットしてプッシュしようとしている新しいフォルダーを含めるようにコーン パターンを編集します。
スパースチェックアウトの制限
- スパース チェックアウトは、4 GB を超える Azure DevOps リポジトリでは機能しません。
- スパース チェックアウトを有効にして作成されたリポジトリのスパース チェックアウトを無効にすることはできません。
Gitフォルダをプログラムで管理する
API を使用して Git フォルダーを管理するには、 Repos API リファレンスを参照してください。
Gitフォルダを削除する
ワークスペースから Git フォルダーを削除するには:
- Git フォルダーを右クリックし、 [ゴミ箱に移動] を選択します。
- 「確認してゴミ箱へ移動」を クリックします。
次のステップ
- Databricks を Git プロバイダーに接続するための認証を設定します。「Git プロバイダーを Databricks に接続する」を参照してください。
- Git フォルダーのサイズ制限やその他の制約について説明します。Databricks Git フォルダーの制限とリファレンスを参照してください。
- Git 統合のワークスペース レベルの設定を構成します。「Databricks Git フォルダーの設定」を参照してください。