对代码进行版本控制

本文档介绍了如何使用 Dataform 中的版本控制功能来跟踪开发。

Dataform 使用 Git 跟踪对代码库中文件所做的每项更改。

在 Dataform 代码库中,您可以直接与 Git 代码库进行交互。

在已关联的代码库中,您可以与您在关联代码库期间配置的远程代码库的跟踪分支进行交互。

Dataform 会根据开发工作区中更改的状态显示版本控制选项。例如,只有当您的工作区中有未提交的本地更改时,Dataform 才会显示提交选项。如果工作区中的文件是默认分支或跟踪分支的完全副本,Dataform 会显示工作区是最新的状态。

Dataform 会显示以下版本控制选项:

提交 X 更改
提交工作区或所选更改文件中的 X 项本地更改。数据表单会显示未提交的更改。
推送到默认分支
将提交的更改推送到默认分支。如果您的工作区中没有未提交的更改,则 Dataform 仓库中会提供此选项。
推送至“your-branch-name
将已提交的更改推送到 your-branch-name。 如果您的工作区中没有未提交的更改,已连接到第三方 Git 代码库的代码库中会提供此选项。
从默认分支拉取
使用默认分支中的近期更改更新您的工作区。 如果您的工作区中没有未提交或未推送的已提交更改,则 Dataform 代码库中会提供此选项。
从“your-branch-name”拉取
根据 your-branch-name 中的最新更改更新您的工作区。 如果您的工作区中没有未提交或未推送的已提交更改,已连接到第三方 Git 代码库的代码库中会提供此选项。
还原为上次提交的内容
将工作区中的文件恢复为上次提交时的状态。

准备工作

  1. 选择或创建代码库
  2. 可选:将代码库关联到第三方 Git 代码库
  3. 选择或创建开发工作区

所需的角色

如需获得在 Dataform 中使用版本控制所需的权限,请让您的管理员为您授予工作区的 Dataform Editor (roles/dataform.editor) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

拉取更改

如果您的开发工作区与代码库不同步,Dataform 会显示拉取选项。如需将更改从代码库拉取到开发工作区,请按以下步骤操作:

  1. Dataform 页面上,选择一个代码库。
  2. 开发工作区标签页中,选择一个开发工作区。
  3. 在“开发工作区”页面上,执行以下操作:
    1. 如果您位于 Dataform 仓库中,请点击从默认分支拉取
    2. 如果您当前所在的代码库已连接到第三方 Git 代码库,请点击your-branch-name 拉取

提交更改

在开发工作区中进行更改后,Dataform 会显示提交选项。您可以提交所有本地更改或所选文件。

新提交对话框中,Dataform 会显示未提交的更改。

如需将开发工作区的更改提交到仓库,请按以下步骤操作:

  1. Dataform 页面上,选择一个代码库。
  2. 在代码库页面上,选择一个开发工作区。
  3. 在开发工作区页面上,点击提交
  4. 新提交窗格中,执行以下操作:

    1. 添加提交消息字段中,为提交输入说明。
    2. 选择您要提交的已更改文件。

      如果您未选择任何文件,Dataform 会提交所有本地更改。您可以按文件状态、文件名和路径过滤已更改的文件。

    3. 点击提交所有更改提交 X 更改

      按钮名称取决于您选择要提交的文件。

推送更改

提交更改后,Dataform 会显示 Push 选项。如需将更改从开发工作区推送到代码库,请按以下步骤操作:

  1. Dataform 页面上,选择一个代码库。
  2. 在代码库页面上,选择一个开发工作区。
  3. 提交更改
  4. 在“开发工作区”页面上,执行以下操作:
    1. 如果您位于 Dataform 仓库中,请点击推送到默认分支
    2. 如果您当前所在的代码库已关联到第三方 Git 代码库,请点击推送到 your-branch-name

还原未提交的更改

如需还原未提交的更改,请按以下步骤操作:

  1. Dataform 页面上,选择一个代码库。
  2. 在代码库页面上,选择一个开发工作区。
  3. Files 窗格上方,点击 More 菜单,然后选择 Revert to last commit

解决合并冲突

如果开发工作区中的本地更改与对代码库的默认跟踪分支所做的更改不兼容,就可能会发生合并冲突。当多个用户同时修改同一文件时,通常会发生合并冲突。

通常,当其他用户将有冲突的更改推送到同一分支后,您从该分支拉取时就会遇到合并冲突。您需要手动解决合并冲突,方法是修改受影响的文件。

以下代码示例展示了 SQLX 文件中显示的合并冲突:

    <<<<<<< HEAD
    SELECT 1 as CustomerOrders
    =======
    SELECT 1 as Orders
    >>>>>>> refs/heads/main

如需解决合并冲突,请按以下步骤操作:

  1. 在开发工作区中的 Files 窗格中,选择受影响的文件。
  2. 使用您选择的更改修改文件。
  3. 提交更改
  4. 可选:推送更改

后续步骤