第5章 CI/CDの実装 / 想定学習時間:30〜40分 / 最終確認:2026年8月

5-1. Databricks Git Folders(旧 Repos)での開発ワークフロー

🎯 この節の学習目標

1. Git Folders とは:ワークスペースと Git リポジトリの接続点

Databricks Git Folders(旧 Databricks Repos)は、ワークスペース内に Git リポジトリのクローンを作成し、ノートブックやソースファイルを Git でバージョン管理するための機能です。かつては「Databricks Repos」という名称でしたが、現在は「Git Folders」に改名されており、機能はそのまま引き継がれています(本書では以降「Git Folders」と表記します)。

Git Folders を使うと、ワークスペースの UI 上から次の Git 操作を直接行えます。

操作Git Folders(ワークスペース内)でできること
クローンリモートリポジトリをワークスペース内の Git フォルダとして複製する
ブランチ作成・切替feature ブランチを作成し、作業対象のブランチを UI から切り替える
コミット&プッシュ変更内容を確認(差分表示)し、コミットメッセージを付けてリモートへ送る
プルリモートの最新変更をワークスペース側へ取り込む
マージ競合の解決プル時に競合が起きた場合、UI 上で競合箇所を確認して解決できる
リセット等ローカルの変更を破棄してリモートの状態に合わせる、などの補助操作

📘 試験対策(旧名称でも出題されうる)

試験問題では旧称の Databricks Repos のまま出題される可能性があります。「Repos を使ってノートブックをバージョン管理する」「Repo 内でブランチを切り替える」といった表現が出てきても、本節の Git Folders の内容がそのまま対応します。「Repos = Git Folders」という読み替えを覚えておきましょう。

🚀 現行Databricks(2026年8月)

現行の名称は Databricks Git Folders です。ワークスペースのファイルツリー上で「Git フォルダ」として表示され、通常のワークスペースフォルダと同じ場所に並びます。クローン・ブランチ操作・コミット・プッシュ・プル・競合解決といった機能は Repos 時代と同じで、UI の呼び名が変わったと理解すれば十分です。

2. できること・できないこと:プルリクエストは Git プロバイダ側で

Git Folders は「日常の Git 操作をワークスペース内で完結させる」機能ですが、すべての Git 機能を持っているわけではありません。この線引きが試験で問われます。

作業どこで行うか
ブランチ作成・切替、コミット、プッシュ、プル、マージ競合の解決Git Folders(ワークスペース内 UI)
プルリクエスト(PR)の作成・レビュー・マージ承認Git プロバイダ側(GitHub、Azure DevOps など)
ブランチ保護ルール、マージ条件の設定Git プロバイダ側
CI パイプライン(自動テスト・自動デプロイ)の定義と実行Git プロバイダ側の CI/CD サービス(GitHub Actions など。5-3 で詳述)

📝 試験のポイント

「開発者がノートブックの変更をレビューしてもらうためにプルリクエストを作成したい。どこで行うか?」→ 正解は「Git プロバイダ(GitHub 等)の画面で作成する」です。Git Folders の UI に PR 作成機能はありません。逆に「ブランチの切り替え」「コミットとプッシュ」「プルによる最新化」「マージ競合の解決」はワークスペース内の Git Folders で行えます。この役割分担を選択肢の切り分けに使いましょう。

対応する Git プロバイダには GitHub、GitLab、Bitbucket Cloud、Azure DevOps、AWS CodeCommit などがあります。接続には各プロバイダの個人アクセストークン(PAT)や、より安全な連携方式(GitHub App など)を使って、ユーザーごとに Git 資格情報を登録します。

3. 典型的な開発フロー:feature ブランチからデプロイまで

Git Folders を使った標準的な開発ワークフローは次のとおりです。「どの作業がワークスペース側か、プロバイダ側か」を意識しながら追ってください。

  1. feature ブランチを作成 — Git Folders の UI で main から新しいブランチを切る(例:feature/add-silver-table)
  2. ノートブック・コードを編集 — ワークスペース上で開発・動作確認する
  3. コミット&プッシュ — Git Folders の UI で差分を確認し、コミットしてリモートへプッシュする
  4. プルリクエストを作成 — Git プロバイダ側で feature → main の PR を作る
  5. レビューと自動テスト — チームメンバーがレビューし、CI が自動テストを実行する
  6. main へマージ — 承認後にプロバイダ側でマージする
  7. デプロイ — main の内容を test / prod 環境へ展開する(仕組みは 5-2・5-3 で学ぶ Automation Bundle と CLI が担う)
開発者ワークスペースで開発
feature ブランチを作成して編集
Git Foldersブランチ切替/コミット/プッシュ/プル/競合解決
プッシュ
リモート Git リポジトリGitHub 等。PR 作成・レビュー・マージはここで行う
main へのマージを契機に CI/CD が起動
CI/CD パイプライン自動テスト → Automation Bundle でデプロイ(5-2・5-3)
dev / test / prod 環境環境ごとのワークスペースへ展開

図:Git Folders を起点とした開発〜デプロイの全体像

この図の後半(CI/CD から各環境への展開)を実現する仕組みが、次節以降で学ぶ Declarative Automation Bundles(旧 Databricks Asset Bundles)Databricks CLI です。5-1 は「コードを安全に main へ届けるまで」、5-2・5-3 は「main のコードを環境へ届ける」と役割を整理して読み進めてください。

4. ワークスペース内ファイルとの関係とベストプラクティス

4-1. Git フォルダと通常のワークスペースフォルダ

Git Folders で作成した Git フォルダの中身は、通常のワークスペースファイルと同じように開いて実行できます。違いは「Git リポジトリと紐づいているかどうか」だけです。Git フォルダ内のノートブックはブランチの状態を反映し、Git フォルダ外のノートブックは Git 管理外です。チーム開発するコードは Git フォルダ内に置くのが原則です。

4-2. ノートブックのソース形式

ノートブックを Git で管理するときのベストプラクティスは、ソースファイル形式(.py や、セル区切りコメント付きのソース)としてコミットすることです。Git Folders はノートブックを既定でソース形式として扱うため、差分レビュー(PR 上での diff 確認)が人間に読みやすい形になります。出力結果(実行結果セル)はコミットに含めないのが原則で、レビューのノイズや機密データの混入を防げます。

💡 具体例:チーム開発での運用ルール

あるデータエンジニアリングチームでは、次のルールで Git Folders を運用しています。

📝 試験のポイント

「複数の開発者が同じコードベースで並行開発したい」→ 正解の方向性は「各自が Git フォルダをクローンし、feature ブランチで作業して PR でマージする」です。「1つのノートブックを全員で直接編集する」「ワークスペースのバージョン履歴機能だけに頼る」といった選択肢は、レビューや再現性の要件を満たせないため誤答側になります。

✅ この節のまとめ

練習問題

問1. データエンジニアが Databricks Git Folders(旧 Repos)の UI から直接実行できる操作はどれか。

  1. プルリクエストの作成とマージ承認
  2. feature ブランチの作成と切り替え、コミット、リモートへのプッシュ
  3. リポジトリのブランチ保護ルールの設定
  4. CI パイプライン(自動テスト)の定義
解答と解説を見る

正解:B

Git Folders では、ブランチ作成・切替、コミット、プッシュ、プル、マージ競合の解決をワークスペース UI から行えます。Aのプルリクエストの作成とマージ、Cのブランチ保護は Git プロバイダ(GitHub 等)側の機能です。Dの CI パイプラインもプロバイダ側の CI/CD サービス(GitHub Actions 等)で定義するもので、Git Folders の機能ではありません。

問2. 開発者が feature ブランチでノートブックを修正し、チームのレビューを経て main ブランチへ反映したい。正しい手順の並びはどれか。

  1. main ブランチ上で直接編集し、Git Folders からコミット&プッシュする
  2. feature ブランチで編集 → Git Folders でコミット&プッシュ → Git プロバイダで PR を作成 → レビュー・承認後にマージ
  3. feature ブランチで編集 → Git Folders の UI から PR を作成 → そのままワークスペース内でマージ
  4. ノートブックをエクスポートし、メールでレビュー担当者に送って main に手動で貼り付けてもらう
解答と解説を見る

正解:B

feature ブランチでの開発 → コミット&プッシュ(Git Folders)→ PR の作成とレビュー・マージ(Git プロバイダ側)という役割分担が正しい流れです。Aは main への直接変更でレビューを経由せず、ブランチ保護にも反します。Cは Git Folders に PR 作成機能がないため実行できません。Dはバージョン管理と監査可能性を放棄した手順で、CI/CD の目的に反します。

問3. Git Folders でリモートの最新変更を取り込むためにプルを実行したところ、自分のローカル変更と競合が発生した。適切な対応はどれか。

  1. 競合はワークスペースでは解決できないため、Git フォルダを削除して作り直すしかない
  2. Git Folders の UI 上で競合箇所を確認・解決してから、コミットを続行する
  3. 競合を無視してプッシュすれば、リモート側で自動的に解決される
  4. プルは Git Folders では実行できないため、そもそも競合は発生しない
解答と解説を見る

正解:B

Git Folders はマージ競合の解決を UI 上でサポートしており、競合箇所を確認して解決したうえで作業を続行できます。Aのような作り直しは不要です(最終手段としてローカル変更の破棄などはありますが「しかない」は誤り)。Cのように競合を放置したままプッシュで自動解決されることはありません。Dはプル自体が Git Folders の基本機能なので誤りです。

問4. ノートブックを Git でバージョン管理する際のベストプラクティスとして最も適切なものはどれか。

  1. ノートブックをソース形式でコミットし、実行結果(出力セル)は含めない
  2. 実行結果を含めた完全な状態でコミットし、レビュー担当者が結果も確認できるようにする
  3. ノートブックは Git 管理に向かないため、Git フォルダの外に置いてワークスペースの自動バージョン履歴だけで管理する
  4. すべてのノートブックを1つのコミットにまとめ、月末に一括でプッシュする
解答と解説を見る

正解:A

ソース形式でコミットすると PR 上の差分が読みやすくなり、レビューが機能します。出力セルを含めるBは、差分のノイズが増えるうえ、結果に含まれるデータが機密情報の混入経路にもなるため不適切です。Cのワークスペース履歴は個人の編集履歴としては便利ですが、ブランチ・レビュー・チーム共有といった CI/CD の要件を満たしません。Dのような巨大な一括コミットはレビューと問題の切り分けを困難にします。