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

重要

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

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

启用和禁用 Git 版本控制

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

  1. 转到“管理员设置”>“工作区设置”。
  2. 在“高级”部分,选择“笔记本 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 内进行分支变基。 如果父分支中有新的提交,则会显示“变基”链接。 仅支持在父存储库的默认分支之上进行变基。

变基

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

在 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 存储库。 在 Web 浏览器中测试 URL。
  • GitHub 个人访问令牌必须处于活动状态。
  • 若要使用专用 GitHub 存储库,必须具有读取存储库的权限。
  • 如果笔记本链接到重命名的 GitHub 分支,则更改不会自动反映在 Azure Databricks 中。 必须手动将笔记本重新链接到分支。

迁移到 Databricks Git 文件夹

如果用户需要从旧版 Git 版本控制迁移到 Databricks Git 文件夹,可以使用以下指南: