筆記本的 Git 版本控制(舊版)

重要

舊版筆記本 Git 整合支援已於 2024 年 1 月 31 日移除。 Databricks 建議您使用 Databricks Git 資料夾來同步處理 Databricks 中的工作與遠端 Git 存放庫。

本文說明如何設定筆記本的 Git 版本控制(舊版功能)。 您也可以使用 Databricks CLI工作區 API 來匯入和匯出筆記本,並在本機開發環境中執行 Git 作業。

啟用和停用 Git 版本控制

預設會啟用版本控制。 若要切換此設定:

  1. 移至 設定> Workspace 設定。
  2. 在 [進階]段中,取消選取 Notebook Git 版本設定切換。

設定版本控制

若要設定版本控制,請在 Git 提供者中建立存取認證,然後將這些認證新增至 Azure Databricks。

使用筆記本版本

您可以在歷程記錄面板中使用筆記本版本。 按下 版本歷程記錄圖示 右側提要欄位,以開啟歷程記錄面板。

版本歷程記錄

注意

當歷程記錄面板開啟時,您無法修改筆記本。

  1. 按下 版本歷程記錄圖示 右側提要欄位。 Git 狀態列會顯示 Git:未連結

    Git 狀態列

  2. 按兩下 [Git:未連結]。

    [Git 喜好設定] 對話框隨即出現。 第一次開啟筆記本時,狀態為 [取消連結],因為筆記本不在 GitHub 中。

    Git 喜好設定 - 連結新的筆記本

  3. 在 [狀態] 欄位中,按兩下 [ 連結]。

  4. 在 [鏈接] 欄位中,貼上 GitHub 存放庫的 URL。

  5. 按兩下 [ 分支 ] 下拉式清單,然後選取分支或輸入新分支的名稱。

  6. 在 [Git 資料夾的路徑] 字段中,指定要儲存盤案的存放庫中的位置。

    Python 筆記本具有建議的預設擴展名 .py。 如果您使用 .ipynb,您的筆記本會以 iPython 筆記本格式儲存。 如果檔案已存在於 GitHub 上,您可以直接複製並貼上檔案的 URL。

  7. 按兩下 [ 儲存 ] 以完成連結筆記本。 如果此檔案先前不存在,出現 [將此檔案儲存至 GitHub 存放庫] 選項的提示。

  8. 輸入訊息,然後按兩下 [ 儲存]。

將筆記本儲存至 GitHub

雖然您對筆記本所做的變更會自動儲存至 Azure Databricks 版本歷程記錄,但變更不會自動保存到 GitHub。

  1. 按下 版本歷程記錄圖示 右側提要欄位以開啟歷程記錄面板。

    歷程記錄面板 - 立即儲存

  2. 按兩下 [ 立即 儲存] 將您的筆記本儲存至 GitHub。 [儲存筆記本版本] 對話框隨即出現。

  3. 或者,輸入訊息來描述您的變更。

  4. 請確定 已選取 [同時認可至 Git ]。

    儲存版本

  5. 按一下 [檔案] 。

從 GitHub 將筆記本還原或更新為版本

鏈接筆記本之後,Azure Databricks 會在每次重新開啟歷程記錄面板時,同步處理您的歷程記錄與 Git。 同步至 Git 的版本會認可哈希作為專案的一部分。

  1. 按下 版本歷程記錄圖示 右側提要欄位以開啟歷程記錄面板。

    歷程記錄面板

  2. 選擇歷程記錄面板中的專案。 Azure Databricks 會顯示該版本。

  3. 按兩下 [ 還原此版本]。

  4. 按兩下 [ 確認 ] 以確認您要還原該版本。

  1. 按下 版本歷程記錄圖示 右側提要欄位以開啟歷程記錄面板。

  2. Git 狀態列會顯示 Git:已同步處理。

    歷程記錄面板 - 立即儲存映像

  3. 按兩下 [Git:已同步]。

    Git 喜好設定 - 取消鏈接筆記本

  4. 在 [Git 喜好設定] 對話框中,按兩下 [ 取消連結]。

  5. 按一下 [檔案] 。

  6. 按兩下 [ 確認 ] 以確認您想要取消連結筆記本與版本控制。

使用分支

您可以在存放庫的任何分支上工作,並在 Azure Databricks 內建立新的分支。

建立分支

  1. 按下 版本歷程記錄圖示 右側提要欄位以開啟歷程記錄面板。

  2. 按兩下 Git 狀態列以開啟 GitHub 面板。

  3. 按兩下 [ 分支 ] 下拉式清單。

  4. 輸入分支名稱。

    建立分支

  5. 選取下拉式清單底部的 [ 建立分支 ] 選項。 表示父分支。 您一律會從目前選取的分支。

建立提取要求

  1. 按下 版本歷程記錄圖示 右側提要欄位以開啟歷程記錄面板。

  2. 按兩下 Git 狀態列以開啟 GitHub 面板。

    Git 喜好設定 - 建立提取要求

  3. 按兩下 [ 建立PR]。 GitHub 會開啟至分支的提取要求頁面。

重新建立分支基底

您也可以在 Azure Databricks 內重新建置分支。 Rebase 鏈接會顯示父分支中是否有新的認可。 僅支援在父存放庫的預設分支之上重新進行重新處理。

Rebase

例如,假設您正在處理 databricks/reference-apps。 您可以將它分叉到您自己的帳戶(例如 brkyvz),並開始在稱為 my-branch的分支上工作。 如果新的更新推送至 databricks:master,則 Rebase 按鈕會顯示,而且您將能夠將變更提取至分支 brkyvz:my-branch

Rebasing 在 Azure Databricks 中的運作方式稍有不同。 假設下列分支結構:

重新基底分支結構之前

重新基底之後,分支結構看起來會像這樣:

重新基底分支結構之後

這裡的不同是認可 C5 和 C6 不適用於 C4。 它們會顯示為筆記本中的本機變更。 合併衝突如下所示:

合併衝突

然後,您可以使用 [ 立即 儲存] 按鈕再次認可至 GitHub。

如果有人從我剛重新建置的分支分支,會發生什麼事?

如果您的分支 (例如 branch-a, ) 是另一個分支的基底(branch-b),而您重新建立基底,就不需要擔心! 一旦使用者也重新調整基底 branch-b,所有項目都會正常運作。在此情況下,最佳做法是針對個別的筆記本使用不同的分支。

程式代碼檢閱的最佳做法

Azure Databricks 支援 Git 分支。

  • 您可以將筆記本連結至存放庫中的任何分支。 Azure Databricks 建議針對每個筆記本使用不同的分支。
  • 在開發期間,您可以將筆記本連結至存放庫的分支,或連結至主要存放庫中的非預設分支。 若要整合上游的變更,您可以使用 Azure Databricks 中 [Git 喜好設定] 對話方塊中的 [建立 PR] 連結來建立 GitHub 提取要求。 只有在您未使用父存放庫的預設分支時,才會顯示 [建立 PR] 連結。

疑難排解

如果您收到與同步處理 GitHub 歷程記錄相關的錯誤,請確認下列各項:

  • 您只能將筆記本連結至未空白的已初始化 Git 存放庫。 在網頁瀏覽器中測試 URL。
  • GitHub 個人存取令牌必須是作用中。
  • 若要使用私人 GitHub 存放庫,您必須擁有讀取存放庫的許可權。
  • 如果筆記本連結到已重新命名的 GitHub 分支,則變更不會自動反映在 Azure Databricks 中。 您必須手動將筆記本重新連結至分支。

遷移至 Databricks Git 資料夾

需要從舊版 Git 版本控制移轉至 Databricks Git 資料夾的使用者可以使用下列指南: