floe/terminus-pushcode

Terminus 插件,用于将当前工作目录中的代码推送到 Pantheon

dev-master 2017-02-08 14:27 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:18:38 UTC


README

Terminus v1.x Compatible

Packagist

一个 Terminus 插件,提供单条命令,用于将当前工作目录中的代码推送到 Pantheon 环境。

此命令旨在用于开发工作流程中,其中 Pantheon 不用作主要的 Git 仓库。相反,主要 Git 仓库包含用于构建需要部署到 Pantheon 的源代码(例如,使用 Composer 但未提交 vendor 目录的项目)。在完成完整构建后,可以使用此命令将结果推送到 Pantheon 环境。

注意:该命令应更新为不需要当前工作目录是 Git 仓库,请参阅#3

安装

作为 Terminus 插件安装(请参阅https://pantheon.io/docs/terminus/plugins/)。

使用 Git 将代码推送到 Pantheon,此插件需要可从 PHP 中使用的 git 可执行文件(通常,能够在命令行中运行 git 就足够了)。

配置

当使用 Git 将代码推送到 Pantheon 时,该命令依赖于当前文件夹中的 .pantheonignore 文件。此文件列出了在推送更改到 Pantheon 时要忽略的文件和目录(就像 .gitignore 文件一样)。

帮助

运行 terminus help push-code 获取帮助。

工作原理

使用 Git 将代码推送到 Pantheon,该命令的理论行为是

  1. 将推送到的环境的分支 HEAD 检出到临时目录
  2. 更新此临时目录以包含我们想要推送到 Pantheon 的内容(即添加/删除/更新所有需要的文件)
  3. 提交所有更改
  4. 将更改推送到 Pantheon

为了避免将文件复制到临时目录的资源密集型和缓慢的过程,第二步以不明显的的方式进行。不是将文件复制到新的克隆的临时副本上,而是将当前工作目录的 .git 替换为来自新克隆的 .git。此外,.gitignore 文件临时覆盖为 .pantheonignore 文件,作为控制推送到 Pantheon 内容的方式。这允许工作目录中的 Git 命令对 Pantheon 仓库的克隆进行操作,然后将其推送到它。一旦命令完成(无论成功或失败),都会恢复原始的 .git.gitignore

推送到环境实际上不需要实际存在。如果它不存在,该命令在 Pantheon 上创建一个新的 Git 分支,但不会创建一个新的环境。