我有一个包含多个项目的 git 存储库。每个项目的代码都位于一个专门的子目录下。
每个项目都有自己的部署过程。我希望当我在项目目录下推送提交时,它会部署正确的项目(并且只有它)。我目前正在使用 bitbucket 管道,但是,它似乎没有这个选项。
我怎样才能使这项工作? (我可以切换到另一个 CI/CD 工具)

最佳答案

它没有这个选项,因为这不是 git 的使用方式。

对于单独部署的项目,每个项目应该有一个存储库。这将允许您以可管理和可记录的方式单独微调部署过程,更重要的是,保持历史记录干净。想象一下现在在您的情况下,您需要查看特定项目的历史记录 - 您最终将挖掘其他项目的所有提交,试图找到您正在寻找的提交。

但是,如果您需要将项目互连并在公共(public)版本控制下,则有一个解决方案:子模块。查看官方文档 here 。它将允许您跟踪个人历史并同时共享资源。此外,它还可以让您对共享空间中每个项目的版本进行不同的控制。

所以我对你的问题的解决方案:重构。将项目分离到单独的存储库,每个存储库都有自己的部署策略,工作正常。如果您需要互连它们并共享资源使它们成为子模块,请创建一个新的存储库并将它们作为子模块添加。这应该可以解决困惑的历史记录和无法控制的文件夹的问题。

关于git - 使用 CI/CD 将我的 git 存储库的每个子目录部署到不同的目标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55999967/

10-14 14:11
查看更多