使用本地 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 類似於 [email protected]:~/repos/example.git
  2. HTTPS - 如果禁止 SSH web 存取且為域名配置了 SSL/TLS 則預設使用該協定(主機設定 >SSL/TLS 支援)。在此情況下,URL 類似於 https://[email protected]/plesk-git/example.git
  3. HTTPS - 如果禁止 SSH web 存取且沒有為域名配置 SSL/TLS 則預設使用該協議。在此情況下,repository URL 類似於 http://[email protected]/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 [email protected]:~/repos/example1.git

如果您想要移除 repository,請點按 移除 Repository 連結(在 網站與域名 > Git 下)。在此情況下,Plesk 將只會移除 repository,而帶有發佈資料的目標目錄則保持原樣。