子模組

概覽

`Git 子模組 <https://git-scm.com/book/en/v2/Git-Tools-Submodules>`_讓您可以將其他 Git 專案整合到您的程式碼中,而無需複製貼上所有程式碼。

事實上,您的自訂模組可以依賴其他存放庫的模組。對於 Odoo 而言,此功能讓您可以將其他 Git 存放庫的模組加入到您存放庫的分支中。透過子模組在分支中加入這些相依項目,可以讓程式碼和伺服器的部署更加容易,因為您可以在複製自己的存放庫的同時複製作為子模組加入的存放庫。

此外,您可以選擇作為子模組加入的存放庫的分支,並且控制您想要的修訂版本。您可以決定是否要將子模組固定到特定修訂版本,以及何時更新到較新的修訂版本。

在 Odoo.sh 中,子模組讓您能夠使用和依賴其他儲存庫中可用的模組。平台會自動偵測您在分支中透過子模組加入的模組,並將它們自動加入您的附加元件路徑,以便您可以在資料庫中安裝它們。

如果您在分支中加入私有儲存庫作為子模組,則需要在 Odoo.sh 專案設定和儲存庫設定中配置部署金鑰。否則 Odoo.sh 將無法下載它們。詳細程序請參閱:ref:`設定 > 子模組 <odoo-sh/settings/submodules>`章節。

加入子模組

使用 Odoo.sh(簡單方式)

警告

目前無法使用此方法加入**私有**儲存庫。不過,您可以:ref:使用 Git <odoo-sh/settings/submodules> 來進行。

在 Odoo.sh 中,進入您專案的分支檢視,選擇要加入子模組的分支。

按一下右上角的 Submodule 按鈕,然後按一下 Run

../../../_images/advanced-submodules-button.png

會顯示一個帶有表單的對話方塊。依照以下方式填寫:

  • Repository URL:儲存庫的 SSH 網址。

  • Branch:您要使用的分支。

  • Path:您要在分支中加入此子模組的資料夾。

../../../_images/advanced-submodules-dialog.png

在 Github 上,您可以透過儲存庫的 Clone or download 按鈕取得儲存庫網址。請務必*使用 SSH*。

../../../_images/advanced-submodules-github-sshurl.png

使用 Git(進階方式)

在終端機中,於您 Git 儲存庫的複製資料夾內,切換至您要加入子模組的分支:

$ git checkout <branch>

然後,使用以下指令加入子模組:

$ git submodule add -b <branch> <git@yourprovider.com>:<username/repository.git> <path>

更換

  • <git@yourprovider.com>:<username/repository.git> 替換為您要加入為子模組的儲存庫的 SSH 網址,

  • <branch> 替換為您要在上述儲存庫中使用的分支,

  • <path> 替換為您要加入此子模組的資料夾。

提交並推送您的變更:

$ git commit -a && git push -u <remote> <branch>

更換

  • 將 <remote> 替換為您要推送變更的儲存庫。對於標準 Git 設定,這是 origin

  • 將 <branch> 替換為您要推送變更的分支。很可能是您在第一步中使用 git checkout 的分支。

您可以閱讀 git-scm.com 使用說明 以取得關於 Git 子模組的更多詳細資訊。例如,如果您想更新子模組以取得其最新版本,可以參考 Pulling in Upstream changes 章節。

忽略模組

如果要加入的儲存庫包含大量模組,您可能想要忽略其中一些模組,以防有任何模組會自動安裝。為此,您可以在子模組資料夾前加上 .。平台將忽略此資料夾,您可以從另一個資料夾建立符號連結來手動選擇模組。