笔记本的 Git 版本控制(旧版)

重要

旧式笔记本 Git 集成支持已于 2024 年 1 月 31 日移除。 Databricks 建议使用 Databricks 存储库将 Databricks 中的工作与远程 Git 存储库同步。

本文介绍如何为笔记本设置 Git 版本控制(旧版功能)。 还可以使用 Databricks CLI工作区 API 来导入和导出笔记本,以及在本地开发环境中执行 Git 操作。

启用和禁用 Git 版本控制

默认情况下会启用版本控制。 若要切换此设置,请执行以下操作:

  1. 转到“管理员设置”>“工作区设置”。
  2. 在“高级”部分,选择“笔记本 Git 版本控制”切换按钮。

配置版本控制

若要配置版本控制,请在 Git 提供程序中创建访问凭据,然后将这些凭据添加到 Azure Databricks。

使用笔记本版本

可以在历史记录面板中使用笔记本版本。 点击右侧栏中的 version history icon 打开历史记录面板。

Version history

注意

“历史记录”面板处于打开状态时,无法修改笔记本。

  1. 点击右侧栏中的 version history icon。 Git 状态栏显示“Git:未链接”。

    Git status bar

  2. 单击“Git:未链接”。

    此时会显示“Git 首选项”对话框。 第一次打开笔记本时,“状态”为“未链接”,因为笔记本不在 GitHub 中。

    Git preferences - link new notebook

  3. 在“状态”字段中,单击“链接”。

  4. 在“链接”字段中,粘贴 GitHub 存储库的 URL。

  5. 单击“分支”下拉列表,然后选择分支或键入新分支的名称。

  6. 在“Git 存储库中的路径”字段中,指定文件在存储库中的存储位置。

    Python 笔记本具有推荐的默认文件扩展名 .py。 如果使用 .ipynb,则笔记本将以 iPython 笔记本格式保存。 如果文件已存在于 GitHub 中,则可以直接复制并粘贴文件的 URL。

  7. 单击“保存”即可完成对笔记本的链接。 如果此文件之前不存在,则会显示一个提示,其中包含“将此文件保存到 GitHub 存储库”选项。

  8. 键入消息,然后单击“保存”。

将笔记本保存到 GitHub

尽管对笔记本所做的更改会自动保存到 Azure Databricks 版本历史记录,但更改不会自动保存到 GitHub。

  1. 点击右侧栏中的 version history icon 以打开历史记录面板。

    History panel - save now

  2. 单击“立即保存”,将笔记本保存到 GitHub。 此时会显示“保存笔记本版本”对话框。

  3. 根据需要,输入一条消息以对更改进行说明。

  4. 确保选中“另提交到 Git”。

    Save version

  5. 单击“保存” 。

将笔记本还原或更新为 GitHub 中的版本

链接笔记本后,每次重新打开“历史记录”面板时,Azure Databricks 都会将历史记录与 Git 同步。 同步到 Git 的版本将提交哈希作为条目的一部分。

  1. 点击右侧栏中的 version history icon 以打开历史记录面板。

    History panel

  2. 在“历史记录”面板中选择一个条目。 Azure Databricks 会显示该版本。

  3. 单击“还原此版本”。

  4. 单击“确认”,以确认是否要还原该版本。

  1. 点击右侧栏中的 version history icon 以打开历史记录面板。

  2. Git 状态栏显示“Git:已同步”。

    History panel - save now image

  3. 单击“Git:已同步”。

    Git preferences - unlink notebook

  4. 在“Git 首选项”对话框中,单击“取消链接”。

  5. 单击“保存” 。

  6. 单击“确认”,以确认想要通过版本控制取消链接笔记本。

使用分支

可以使用存储库的任何分支,并在 Azure Databricks 内新建分支。

创建分支

  1. 点击右侧栏中的 version history icon 以打开历史记录面板。

  2. 单击 Git 状态栏以打开 GitHub 面板。

  3. 单击“分支”下拉菜单。

  4. 输入分支名。

    Create branch

  5. 选择下拉菜单底部的“创建分支”选项。 父分支已指出。 始终从当前选定的分支处创建分支。

创建拉取请求

  1. 点击右侧栏中的 version history icon 以打开历史记录面板。

  2. 单击 Git 状态栏以打开 GitHub 面板。

    Git preferences - create pull request

  3. 单击“创建 PR”。 GitHub 打开分支的拉取请求页。

分支变基

你还可以在 Azure Databricks 内进行分支变基。 如果父分支中有新的提交,则会显示“变基”链接。 仅支持在父存储库的默认分支之上进行变基。

Rebase

例如,假设你正在使用 databricks/reference-apps。 可以为其创建指向自己帐户的分支(例如 brkyvz),然后开始使用名为 my-branch 的分支。 如果将新的更新推送到 databricks:master,则显示 Rebase 按钮,并且可以将更改拉取到分支 brkyvz:my-branch 中。

在 Azure Databricks 中,变基的工作原理略有不同。 假设分支结构如下:

Before rebase branch structure

变基后,分支结构将如下所示:

After rebase branch structure

这里的不同之处在于,提交 C5 和 C6 不在 C4 之上应用, 而是显示为笔记本中的本地更改。 合并冲突如下所示:

Merge conflict

然后,可以使用“立即保存”按钮再次提交到 GitHub。

如果有人从我刚变基的分支处创建分支,会发生什么?

如果你的分支(例如 branch-a)是另一个分支 (branch-b) 的基,然后你进行了变基,则不必担心! 用户也对 branch-b 进行变基后,所有问题都会迎刃而解。在这种情况下,最好对不同的笔记本使用不同的分支。

代码评审的最佳做法

Azure Databricks 支持 Git 分支。

  • 可以将笔记本链接到存储库中的任何分支。 Azure Databricks 建议为每个笔记本使用单独的分支。
  • 在开发过程中,可以将笔记本链接到存储库的分支或主存储库中的非默认分支。 要将更改集成到上游,可以使用 Azure Databricks 中“Git 首选项”对话框中的“创建 PR”链接来创建 GitHub 拉取请求。 仅当不使用父存储库的默认分支时,才会显示“创建 PR”链接。

疑难解答

如果收到与同步 GitHub 历史记录有关的错误,请验证以下内容:

  • 只能将笔记本链接到经过初始化的非空 Git 存储库。 在 Web 浏览器中测试 URL。
  • GitHub 个人访问令牌必须处于活动状态。
  • 若要使用专用 GitHub 存储库,必须具有读取存储库的权限。
  • 如果笔记本链接到重命名的 GitHub 分支,则更改不会自动反映在 Azure Databricks 中。 必须手动将笔记本重新链接到分支。

迁移到 Databricks Repos

需要从旧的 Git 版本控制迁移到 Databricks Repos 的用户可以使用以下指南: