跳到主要内容

分支模式#

n8n实例与Git分支的关系具有灵活性。您可以根据需求创建不同的配置方案。

重要建议:避免对同一n8n实例执行推送和拉取操作

虽然支持从实例推送工作内容到分支,并拉取到同一实例,但n8n不推荐此做法。为降低合并冲突和工作内容被覆盖的风险,建议建立单向流转流程:要么仅向Git推送,要么仅从Git拉取,避免双向操作。

多实例多分支模式#

此模式需要配置多个n8n实例,每个实例分别关联独立分支。

该模式适用于环境隔离场景。例如创建开发与生产两个n8n实例,分别关联专属分支。从开发实例推送工作内容至开发分支,通过拉取请求将工作转移至生产分支,最后在生产实例执行拉取操作。

该模式的优势包括:

  • 提供额外安全层,防止变更误入生产环境。必须通过GitHub拉取请求才能在环境间复制工作内容
  • 支持两个以上实例的扩展

劣势是环境间复制工作内容需要更多手动步骤。

架构图

多实例单分支模式#

若需在所有环境保持相同的工作流、标签和变量,但需在不同n8n实例中使用时,可采用此模式。

该模式同样适用于环境管理。例如创建开发与生产两个n8n实例,同时关联到同一分支。从开发环境推送工作内容,在生产环境拉取更新。

此模式在测试新版本n8n时尤为实用:可创建搭载新版本的n8n实例,连接至Git分支进行测试,而生产实例仍运行旧版本,直至确认升级安全无误。

该模式的优势在于:工作内容从任一实例推送后即可被其他环境即时获取。

劣势包括:

  • 误推送可能导致工作内容直接进入生产实例。若使用GitHub Action自动拉取到生产环境,必须采用多实例多分支模式,或谨慎确保不推送未经验证的内容
  • 对同一实例执行推送和拉取可能导致数据丢失,因为执行这些操作时会覆盖变更。应建立流程确保内容单向流动

架构图

单实例多分支模式#

实例所有者可以更改连接实例的Git分支。这种情况的完整配置很可能采用多实例多分支模式,但由单个实例在分支间切换。

该模式适用于代码审查场景。例如不同用户可在各自实例工作并推送到专属分支,审查者可在审查实例中切换分支以加载不同用户的工作内容。

注意:无清理机制

切换分支时n8n不会清理实例现有内容。在此模式下切换分支会导致所有分支的工作流同时存在于实例中。

架构图

单实例单分支模式#

这是最简化的配置模式。

架构图