子模塊?

概覽?

A Git submodule 允許您將其他 Git 項目集成到您的代碼中,而無需復制粘貼它們的所有代碼。

實際上,您的自定義模塊可以依賴于其他存儲庫中的模塊。關于Odoo,此功能允許您將其他Git存儲庫中的模塊添加到您的存儲庫的分支中。通過子模塊在您的分支中添加這些依賴項可以使您的代碼和服務器部署更加容易,因為您可以在克隆自己的存儲庫的同時克隆添加為子模塊的存儲庫。

此外,您可以選擇作為子模塊添加的存儲庫的分支,并且您可以控制您想要的修訂版本。您可以決定是否將子模塊固定到特定的修訂版本,并在何時更新到新的修訂版本。

在Odoo.sh中,子模塊使您有可能使用和依賴于其他存儲庫中可用的模塊。平臺將檢測到您通過子模塊添加了模塊到您的分支中,并自動將它們添加到您的插件路徑中,以便您可以在您的數據庫中安裝它們。

如果您在分支中添加私有倉庫作為子模塊,您需要在您的Odoo.sh項目設置和倉庫設置中配置部署密鑰。否則,Odoo.sh將無法下載它們。該過程在章節 設置 > 子模塊 中有詳細說明。

添加子模塊?

使用Odoo.sh(簡單版)?

警告

目前使用此方法無法添加 私有 倉庫。但是,您可以使用 with Git 方法來添加私有倉庫。

在Odoo.sh上,進入您的項目的分支視圖,在其中選擇您想要添加子模塊的分支。

在右上角,點擊 子模塊 按鈕,然后點擊 運行 。

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

彈出一個帶有表單的對話框。請按以下方式填寫輸入項:

  • 倉庫 URL:倉庫的 SSH URL。

  • 分支:您想要使用的分支。

  • 路徑:您想要將此子模塊添加到您的分支中的文件夾。

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

在 Github 上,您可以通過倉庫的 Clone or download 按鈕獲取倉庫的 URL。請確保 使用 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 URL,請使用該倉庫的 SSH URL。

  • 在上述存儲庫中使用 <branch> 分支,以使用所需的分支。

  • 請使用 <path> 指定您想要添加此子模塊的文件夾。

提交并推送您的更改:

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

替換

  • <remote> 是你想要推送更改的倉庫。對于標準的 Git 設置,這是 origin 。

  • <branch> 指你想要推送更改的分支。很可能是你在第一步使用 git checkout 命令切換到的分支。

您可以閱讀 git-scm.com 文檔 了解有關 Git 子模塊的更多詳細信息。例如,如果您想將子模塊更新到最新版本,可以按照章節 拉取上游更改 進行操作。

忽略模塊?

如果您要添加包含許多模塊的存儲庫,您可能希望忽略其中一些,以防有任何自動安裝的模塊。為此,您可以在子模塊文件夾前加上 . 。平臺將忽略此文件夾,您可以通過從另一個文件夾創建符號鏈接來手動選擇您的模塊。