使用本地 repository

观看视频教程

在该情况下,您从本地 repository 发送更改到 Plesk,然后 Plesk 会将这些更改部署到您的网站上。

在本章中:

创建 Git repository

Push 和部署文件

更改 branch 或路径

选择部署模式

启用其它的部署操作

查看提交日志

重命名或移除 Repository

 

创建 Git repository

若要为您的域名创建一个新的 Git repository,请进入网站与域名 点击Git。如果您已经通过 Plesk 为您的域名创建了 Git repositories,请点击 添加 Repository 按钮。您将会看到创建新的 repository 的屏幕:

Git_local_create

首先,您必须选定在哪儿存储您的代码。在该方案中,请选择 您的工作站上的本地 repository

Plesk 中的 Git Repository。指定 repository 名称。默认域名使用 .git 后缀。

您的网站 部分指定以下项:

  • 部署模式。默认会使用 自动部署。这表示所有被 push 到 Git repository 的更改都会自动被部署到生产环境下的站点。如果您想要更改部署模式,请点击 自动部署 链接在打开的 部署模式 窗口中选择其它的选项。如果您选择了 手动部署,您将需要手动从 Git 库部署文件到您的主机。如果选择 无部署,文件将不会部署到生产环境下的站点(这可能会对代码存储和交换有用)。

    Git_push_Deployment_mode

  • 用于在您的网站上发布 Git 文件的目标目录。默认会使用 /httpdocs 目录。您可以点击其它现有目录的名称将更改部署到其它的目录。

    Git_push_Deployment_path

点击 确定。将会创建新的 repository 且会在 Git 页面上显示。

Git_local_created

显示的 repository URL 取决于您使用的数据传输协议。您可以选择下面的协议:

  1. SSH(仅限于 Linux)- 如果为域名启用了 SSH 主机访问权限会默认使用该协议。若要设置通过SSH访问域名,请进入网站与域名> 主机访问通过SSH访问服务器菜单中选择/bin/bash /bin/sh。 在此情况下,repository URL 类似于 user1@example.net:~/repos/example.git
  2. HTTPS - 如果禁止 SSH web 访问且为域名配置了 SSL/TLS 则默认使用该协议(主机设置 >SSL/TLS 支持)。在此情况下,URL 类似于 https://user1@example.net/plesk-git/example.git
  3. HTTPS - 如果禁止 SSH web 访问且没有为域名配置 SSL/TLS 则默认使用该协议。在此情况下,repository URL 类似于 http://user1@example.com/plesk-git/example.git

根据 帮助 链接中的说明初始化本地 repository。

Git_How_To

当 repository 被初始化时,您可以在 网站与域名 > Git 上看到commit信息和活动的 branch名称。默认会将 branch 用于 Plesk。您可以稍后添加更多的 branches(请参阅 更改 Branch 或路径 部分)。

Git _init_commit

现在您可以从本地 repository 提交您的网站文件并将其 push 到服务器 repository。

 

Push 和部署文件

当您从本地 repository 提交您的网站文件并将其 push 到服务器 repository 时,您可以在 网站与域名 > Git页面上看到commit信息。

Git_local_commit

默认 Plesk 会使用 自动部署 模式。这表示在文件被 push 到 repository 后,会立即被部署到目标目录(必要时可禁用该模式,请参阅 选择部署模式 部分)。

例如,如果您提交并 push 一个 index.html 文件(该文件带有文本 “Hello! Welcome to my site.”)到 Git repository,您可以立即点击网址 URL 查看更改:

Git_website

 

更改 branch 或路径

从新的 branch 部署

正常不会在一个 repository 中操作多个 branches。一个时间段内只能有一个活动的 branch。默认会将branch 用于部署。

若要再添加一个 branch,您需要在您的本地 repository 中创建一个。例如,您可以使用以下命令添加 dev branch:

git branch dev

git checkout dev

然后提交文件到该 branch 并 push 到服务器的 repository,命令如下:

git commit –m "changes to branch"

git push –u origin dev

现在您则可以在两个活动的 branches 中选择一个。进入 网站与域名 > Git,点击 更改 branch 和路径 链接,在打开的窗口中于Branch 菜单中选择branch名称。

Git_push_change_branche

如果您选择一个新的 branch 并点击 确定,Plesk 将会显示新的活动的 branch。

Git_local_branch

更改部署路径

默认会将 /httpdocs 目录用于在网站上发布 Git 文件。如果您想要更改部署路径,请点击 更改 branch 和路径 链接,在打开的窗口中,选择新的目录。您还可以点击 创建新的文件夹 按钮创建新的目录。

Git_push_change_folder

 

选择部署模式

若要为您的repository选择部署模式,请点击 Repository 设置选择部署模式 中选择所需选项:

  • 自动部署. 文件将会在被 push 到 Plesk repository 后立即部署到生产环境下的站点。
  • 手动部署. 您将需要通过点击从Repository部署按钮(位于 网站与域名> Git)手动部署文件。您还可以点击 网站与域名页面上 repository 名称旁的 Deploy 按钮手动部署文件。
  • 无部署(repository 主机)。文件将不会部署到生产环境下的站点。如果您只是使用 Git repository 存储代码可考虑该选项。

    Git_local_select_deploy_mode

 

启用其它的部署操作

在大部分情况下,文件发布还不足以完成网站的部署。例如,如果您正使用 Ruby on Rails 等框架,您可能需要在部署后使用如  bin/rails db:migrate 之类的命令运行数据迁移。

Plesk 支持很多在部署文件到网站后需要执行的其它操作。

进入网站与域名 > Git,点击 Repository 设置,选择 启用其它的部署操作 并指定一个或多个部署 repository 时应运行的 shell 命令。每个命令需占一行。

Git_local_actions

注意:如果禁用用户在 Linux 上使用 SSH,所有指定的命令将在 chrooted 环境中运行。订阅的系统用户的主目录会被当做该订阅的文件系统根,不会运行 chroot jail 外的可执行文件。例如,如果您站点的路径是 /var/www/vhosts/example.com/httpdocs,那么在 chrooted 环境中的路径则是 ./httpdocs,因此您将无法在超出 /httpdocs 目录一级的目录中执行命令。

 

查看提交日志

若要查看当前 branch 的整个commit历史,请进入 网站与域名 > Git,点击Commit 日志 链接。对于每个提交记录,将会显示以下信息:时间、唯一的标识符、用户名称和提交信息。单击刷新以更新提交日志。

Got_Commit Logs

您可以按任何参数过滤提交日志 您可以查找到某个用户自某个日期起所有的 commit情况。请点击 Git_Commit_Logs_search_Buttom 按钮,输入搜索参数,点击 搜索

Git_Commit Logs_filter

 

重命名或移除 Repository

您可以在任何时候重命名 repository。例如,如果您已完成了开发,您可能想要将 repository 名称从 website-dev 更改为 website 以避免混淆。进入网站与域名 > Git,点击Repository 设置,在 Repository 名称 字段输入新的名称。

注意重命名 repository 后,您应配置您的本地 repository 匹配新的 repository URL,命令如下:

git remote set-url origin [new URL]

例如,如果您将 repository 从 example 更名为 example1,请运行以下命令:

git remote set-url origin user1@example.com:~/repos/example1.git

如果您想要移除 repository,请点击 移除 Repository 链接(在 网站与域名 > Git 下)。在此情况下,Plesk 将只会移除 repository,而带有发布数据的目标目录则保持原样。