我有一个包含多个项目的git存储库。每个项目的代码都位于专用子目录下。 每个项目都有自己的部署过程。我希望当我将提交推送到项目目录下时,它将部署正确的项目(并且仅部署它)。我目前正在使用bitbucket管道,但是,它似乎没有此选项。 我该如何进行这项工作? (我可以切换到其他CI / CD工具)
答案 0 :(得分:3)
它没有此选项,因为这不是git的用法。
对于要单独部署的项目,每个应该有一个存储库。这将使您能够以可管理和可记录的方式分别微调部署过程,更重要的是,保持历史记录的清洁。现在想象一下,在您遇到的情况下,您需要查看特定项目的历史记录-您最终将挖掘其他项目的所有提交,以尝试找到所需的项目。
但是,如果您需要将项目互连并在通用版本控制下,则有一个解决方案:子模块。查看官方文档here。它可以让您跟踪个人历史并同时共享资源。此外,它还使您可以对共享空间中每个项目的版本进行独特的控制。
因此,我对您的问题的解决方案:重构。将项目分离到单独的存储库中,每个存储库都有自己的部署策略就可以了。如果随后需要互连它们并共享资源,请使其成为子模块,请创建一个新的存储库并将其添加为子模块。这样可以解决混乱的历史记录和无法控制的文件夹。