将工作区与 Git 存储库集成¶
重要
从 2025 年 9 月开始,Snowflake 逐步将默认账户从 Worksheets 升级为 Workspaces。工作区将成为默认的 SQL 编辑器。有关更多信息,请参阅 将账户从 Worksheets 默认设置为 Workspaces。
概述¶
工作区可以是 Snowflake 的本地工作区,您也可以将开发中的工作区与 Git 存储库中的分支同步。在工作区中,您可以执行以下操作:
将最新更改从您的 Git 存储库提取到工作区。
提交更新的文件并将其推送 回您的 Git 存储库。
直接在工作区中 查看和解决任何冲突。
创建 Git 工作区¶
要在 Snowsight 中直接开发和维护文件,您可以创建一个与 Git 存储库连接的工作区。
备注
一个 Git 存储库必须包含至少一个分支;不支持空存储库。
要创建新的 Git 同步工作区,请按照以下步骤操作:
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在 Workspaces 菜单中,选择 From Git repository。
从 Git 存储库中复制 URL(例如
https://www.github.com/my-user/my-repo-name
),然后将其粘贴到 Repository URL 字段中。可选:重命名新的 Git 同步工作区。
在 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;
在 API 集成下,选择一种身份验证方法:
OAuth2 – 选择 Sign in,以向您的 GitHub 存储库进行身份验证。登录后,在后续会话中无需再提供凭据。请注意,OAuth2 不适用于 PrivateLink 环境。
Personal access token – 选择存储包含您的令牌的对象的数据库和架构。要创建新密钥,请选择 + Secret 并输入所需的详细信息。必须将 API 集成配置为允许访问此密钥或所有密钥。
Public repository – 如果您使用不需要身份验证的公共存储库,请选择此选项。请注意,无法将任何更改从您的工作区提交并推送到此公共存储库。
选择 Create。
创建新分支¶
您可以从当前分支创建一个新分支,以独立处理更改。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
选择 Changes 选项卡。
选择存储库下拉列表。
选择 + New。
指定新的分支名称,然后选择 Create。
切换到另外一个分支¶
如果您已保存更改,但尚未提交,则需要在切换分支之前选择如何处理这些更改。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在 Git 工作区视图中,选择 Changes。
从分支菜单中,选择要切换到的分支。
小技巧
要筛选列表,请开始键入分支名称。
提取远程分支¶
如果在 Snowsight 外部创建了新分支(例如,在 Git 提供商中创建了分支),则可以使用 Fetch All 选项,将其提取到 Git 同步工作区中。这会更新您的可用远程分支列表。
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在 Git 工作区视图中,选择 Changes。
选择 Pull 菜单旁边的向下箭头,然后选择 Fetch All。提取完成后,新创建的远程分支会显示在分支列表中,可供签出。
查看已更新的文件¶
要查看自上次成功提交和推送以来添加、删除或修改的所有文件,请按照以下步骤操作:
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在文件夹视图的顶部,选择 Changes。修改后的文件用 M 表示,新添加的文件用 A 表示,已删除的文件用 D 表示。
要通过差异可视化的方式查看编辑器中的更改,请选择一个文件。
提交和推送更新¶
在查看更改后,您可以从工作区内提交更改,并将其推送到远程 Git 存储库。
要提交更新后的文件并将其推送到远程 Git 存储库,请按照以下步骤操作:
登录 Snowsight。
在导航菜单中,选择 Projects » Workspaces。
在文件夹视图的顶部,选择 Changes。
在 Commit message 字段中编写一条提交消息。
选择 Push。
编写提交消息,然后选择 Push 将更新推送到 Git 存储库。
备注
如果检测到冲突,系统会提示您先提取。选择 Pull,查看存在冲突的文件列表。
查看和解决冲突¶
如果在推送期间发生冲突,则可以直接在工作区中查看和解决冲突,然后再次提交。
在工作区的文件夹视图顶部,选择 Changes。如果一个或多个文件发生冲突,则视图顶部会显示一条消息。有冲突的文件用红色的 M 表示。
要通过差异可视化的方式查看编辑器中的冲突,请选择一个文件。在 File with conflicts 下,差异会以内嵌方式突出显示。
接受当前更改和/或传入的更改。此时会显示合并的结果。
在 Diff View 下,您可以并排查看当前版本和远程版本。
选择 Accept all current 或 Accept all remote。
解决冲突后,选择 Push。
编写一条提交消息。
选择 Push。