将工作区与 Git 存储库集成

重要

从 2025 年 9 月开始,Snowflake 逐步将默认账户从 Worksheets 升级为 Workspaces。工作区将成为默认的 SQL 编辑器。有关更多信息,请参阅 将账户从 Worksheets 默认设置为 Workspaces

概述

工作区可以是 Snowflake 的本地工作区,您也可以将开发中的工作区与 Git 存储库中的分支同步。在工作区中,您可以执行以下操作:

创建 Git 工作区

要在 Snowsight 中直接开发和维护文件,您可以创建一个与 Git 存储库连接的工作区。

备注

一个 Git 存储库必须包含至少一个分支;不支持空存储库。

要创建新的 Git 同步工作区,请按照以下步骤操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. Workspaces 菜单中,选择 From Git repository

  4. 从 Git 存储库中复制 URL(例如 https://www.github.com/my-user/my-repo-name),然后将其粘贴到 Repository URL 字段中。

  5. 可选:重命名新的 Git 同步工作区。

  6. API Integration 菜单中,选择一项 API 集成。

    API 集成由账户管理员创建,必须允许访问您在步骤 4 中使用的 Git 存储库 URL。有关详细信息,请参阅 设置 Snowflake 以使用 Git

    此外,如果您使用 GitHub 作为 Git 提供商,并且更希望使用 OAuth 身份验证,则账户管理员必须创建支持 OAuth 的 API 集成。例如:

    CREATE OR REPLACE API INTEGRATION api_integration_name
       API_PROVIDER = git_https_api
       API_ALLOWED_PREFIXES = ('https://github.com/')
       API_USER_AUTHENTICATION = (
          TYPE = snowflake_github_app
       )
       ENABLED = TRUE;
    
    Copy
  7. 在 API 集成下,选择一种身份验证方法:

    • OAuth2 – 选择 Sign in,以向您的 GitHub 存储库进行身份验证。登录后,在后续会话中无需再提供凭据。请注意,OAuth2 不适用于 PrivateLink 环境。

    • Personal access token – 选择存储包含您的令牌的对象的数据库和架构。要创建新密钥,请选择 + Secret 并输入所需的详细信息。必须将 API 集成配置为允许访问此密钥或所有密钥。

    • Public repository – 如果您使用不需要身份验证的公共存储库,请选择此选项。请注意,无法将任何更改从您的工作区提交并推送到此公共存储库。

  8. 选择 Create

更新一个分支的作者详细信息和凭据

默认情况下,您的 Snowflake 电子邮件和用户名用于向 Git 存储库提交更改。您可以随时更新这些信息。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 选择 Changes 选项卡。

  4. 选择省略号,然后选择 Edit credentials

  5. 指定作者姓名和电子邮件。

  6. 选择 Update

创建新分支

您可以从当前分支创建一个新分支,以独立处理更改。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 选择 Changes 选项卡。

  4. 选择存储库下拉列表。

  5. 选择 + New

  6. 指定新的分支名称,然后选择 Create

切换到另外一个分支

如果您已保存更改,但尚未提交,则需要在切换分支之前选择如何处理这些更改。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在 Git 工作区视图中,选择 Changes

  4. 从分支菜单中,选择要切换到的分支。

    小技巧

    要筛选列表,请开始键入分支名称。

提取远程分支

如果在 Snowsight 外部创建了新分支(例如,在 Git 提供商中创建了分支),则可以使用 Fetch All 选项,将其提取到 Git 同步工作区中。这会更新您的可用远程分支列表。

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在 Git 工作区视图中,选择 Changes

  4. 选择 Pull 菜单旁边的向下箭头,然后选择 Fetch All。提取完成后,新创建的远程分支会显示在分支列表中,可供签出。

查看已更新的文件

要查看自上次成功提交和推送以来添加、删除或修改的所有文件,请按照以下步骤操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在文件夹视图的顶部,选择 Changes。修改后的文件用 M 表示,新添加的文件用 A 表示,已删除的文件用 D 表示。

  4. 要通过差异可视化的方式查看编辑器中的更改,请选择一个文件。

提交和推送更新

在查看更改后,您可以从工作区内提交更改,并将其推送到远程 Git 存储库。

要提交更新后的文件并将其推送到远程 Git 存储库,请按照以下步骤操作:

  1. 登录 Snowsight

  2. 在导航菜单中,选择 Projects » Workspaces

  3. 在文件夹视图的顶部,选择 Changes

  4. Commit message 字段中编写一条提交消息。

  5. 选择 Push

  6. 编写提交消息,然后选择 Push 将更新推送到 Git 存储库。

    备注

    如果检测到冲突,系统会提示您先提取。选择 Pull,查看存在冲突的文件列表。

查看和解决冲突

如果在推送期间发生冲突,则可以直接在工作区中查看和解决冲突,然后再次提交。

  1. 在工作区的文件夹视图顶部,选择 Changes。如果一个或多个文件发生冲突,则视图顶部会显示一条消息。有冲突的文件用红色的 M 表示。

  2. 要通过差异可视化的方式查看编辑器中的冲突,请选择一个文件。在 File with conflicts 下,差异会以内嵌方式突出显示。

  3. 接受当前更改和/或传入的更改。此时会显示合并的结果。

  4. Diff View 下,您可以并排查看当前版本和远程版本。

  5. 选择 Accept all currentAccept all remote

  6. 解决冲突后,选择 Push

  7. 编写一条提交消息。

  8. 选择 Push

语言: 中文