对代码进行版本控制

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

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

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

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

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

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

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

准备工作

  1. 选择或创建代码库
  2. 可选:将您的代码库关联到第三方 Git 代码库
  3. 选择或 Create a Development workspace

所需的角色

如需获取在 Dataform 中使用版本控制所需的权限,请让管理员向您授予工作区的 Dataform Editor (roles/dataform.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限

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

拉取更改

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

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

提交更改

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

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

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

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

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

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

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

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

推送更改

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

  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. 在开发工作区的文件窗格中,选择受影响的文件。
  2. 根据您选择的更改编辑文件。
  3. 提交更改
  4. 可选:推送更改

后续步骤