Shopify GitHub 集成可让您将 GitHub 账户或组织与 Shopify 登录连接起来。这种连接可以帮助您对网店主题代码进行修改和跟踪。它还能帮助您与其他开发人员协作,实时分享进度。
功能
通过Shopify GitHub集成,您可以实现以下功能:
- 从任何与您的GitHub账户相关联的组织或仓库中自动提取和推送主题代码
- 从版本库连接一个或多个分支,轻松开发和测试新主题功能或活动
- 根据提交到分支的内容更新主题,并跟踪在Shopify后台中的编辑,包括代码编辑器和主题编辑器
- 将分支连接到未发布或已发布的主题
如何工作
每当连接的分支更新时,Shopify GitHub集成都会更新您在Shopify后台中的主题。它还会将通过 Shopify 后台所做的更改提交到分支,以确保分支和后台中的主题始终匹配。
Shopify 提交
通过 Shopify后台编辑主题时,Shopify 会自动将任何更改提交到您的版本库。当任何所有者、员工或合作者进行修改时,都会创建一个提交。更改保存后,会作为提交添加到连接的分支。
您可以在 Shopify 后台的以下区域编辑主题:
- 主题编辑器。当您使用主题编辑器自定义主题时,这些自定义设置会存储在设置文件中,这些文件是主题代码的一部分。
- 代码编辑器。
- 在线商店中安装的主题应用程序。
连接到 GitHub
只有连接为主题的分支中的代码才对商店中的其他用户可见。分支连接为主题后,任何拥有主题权限的用户都可以断开连接。
您的 Shopify 登录只能连接一个 GitHub 账户。将 Shopify 登录连接到 GitHub 账户后,Shopify 登录就可以连接 Shopify GitHub 应用程序可以访问的版本库和分支。
如果多个用户需要管理与一个仓库的连接,则每个用户都需要为自己的账户授权 Shopify GitHub 应用程序。
要断开 GitHub 账户或组织与 Shopify 商店的连接,可以通过 GitHub 卸载 Shopify GitHub 应用程序。
组织访问
如果授予 Shopify GitHub 应用程序访问 GitHub 组织内仓库的权限,那么任何拥有该组织内 GitHub 账户的用户,只要拥有 “管理主题 “权限或 “主题 “权限,就可以在可用仓库列表中查看该应用程序可以访问的任何仓库。不过,这些用户只能连接有写入权限的分支,而且分支必须与所需的版本库结构相匹配。
如果您想阻止用户查看某些版本库,那么您应该只授予 Shopify 的 GitHub 应用程序访问您想连接到 Shopify 商店的版本库的权限。如果您只授予特定版本库的访问权限,而您又创建了一个新版本库,并希望与 Shopify 一起使用,那么您需要通过 GitHub 授予应用程序访问版本库的权限。
将 GitHub 账户更改为 GitHub 组织
如果您在安装 Shopify GitHub 应用程序时将 GitHub 用户更改为 GitHub 组织,则需要卸载并重新安装该应用程序,以便 Shopify 可以连接到新的仓库。
GitHub 权限
Shopify GitHub 应用程序需要以下权限才能访问 GitHub 账户或组织中的某些数据:
只读访问 | deployments, metadata |
读写权限 | administration, code, pull requests, secrets, workflows |
冲突和错误处理
如果用户正在主题编辑器中编辑一个打开的文件,而 GitHub 或代码编辑器中正在编辑同一个文件,那么用户在保存时会收到覆盖新更改的警告。
代码编辑器中目前没有冲突警告。代码编辑器中的文件版本会覆盖 GitHub 中的文件版本。
如果在 Shopify 外部提交或推送时发生冲突,开发者有机会在 GitHub 解决,或强制推送更改以覆盖 Shopify 中的文件。
在有限的情况下,如果在主题编辑器或代码编辑器中保存文件,同时向 GitHub 分支推送变更,可能会发生冲突。在这种情况下,来自 Shopify 的提交可能会被视为过时并被 GitHub 拒绝。
如果怀疑推送或拉取更改时发生了错误,可以点击主题卡上最后保存时间戳旁边的查看日志,查看最近几次版本控制事件的日志。
如果你认为主题与分支已经过时,那么你可以进入主题,选择操作 > 重置为上次提交,手动拉取分支的最新版本。
限制
- 从 GitHub 到 Shopify 的分支连接和提交总容量最大为 50 MB,每个文件最大为 5 MB。
- 使用 Shopify GitHub 集成进行推送和拉取的次数受标准 GitHub 应用程序速率限制的控制。
入门
要了解如何将您的账户或组织连接到 GitHub 并将分支连接为主题,请参阅《Shopify GitHub 集成入门》。
仓库结构
您只能连接符合默认 Shopify 主题文件夹结构的分支。该结构代表未构建的主题,或已完成必要文件转换的主题。
.
├── assets
├── config
├── layout
├── locales
├── sections
├── snippets
└── templates
└── customers
版本库中的 .github 文件夹会被忽略。因此,使用此方法仍可使用任务自动化和持续集成工具,如 Lighthouse CI。
如果您想将 Shopify GitHub 集成到使用构建管道的主题中,可以将源代码和生成的代码分隔到两个独立的仓库中,或者将生成的代码存储为子树或子模块,然后将其连接到 Shopify 主题。您还可以使用这些方法防止 Shopify 更改遵循默认文件夹结构的源代码。
使用这些模型时,您需要将 Shopify 对生成代码所做的更改回填到源代码中。要了解有关这些版本控制方法的更多信息,参阅版本控制最佳实践
分支管理策略
在 Shopify 中管理连接到 GitHub 仓库的主题时,请考虑以下几点:
- 断开连接后,无法重新连接主题的分支。如果重新连接一个分支,它就会被添加为一个新主题。
- 如果一个未发布的主题连接到了一个分支,然后又发布了,那么它就会保持与分支的连接。
要了解分支和主题之间的关系,以及如何优化工作流程以有效使用分支,请参考我们的版本控制最佳实践。
原文链接:https://shopify.dev/docs/themes/tools/github
发表回复