是否可以在git子模块中使用YAML文件创建构建



我在git存储库中设置了一个子模块。

在推送对此子模块的更改时,我可以在本地分支中看到添加到此子模块的所有文件。但是,我在远程分支的子模块中没有看到这些文件。我在远程分支中看到的只是一个以<guid>为内容的子模块文件。我正确地看到了所有提交。

这是意料之中的事吗?

如果是这样的话,我在这个子模块中有一个用于构建/发布的YAML文件。是否可以使用子模块中的YAML文件创建构建/发布,因为该文件在远程分支中不可见?

子模块的内容不是父存储库的一部分:子模块是自己的Git存储库,子模块的属性是该存储库的组成部分。所以你所看到的是意料之中的。

来自Pro Git书籍中关于子模块的章节:

尽管[子模块]是工作目录中的一个子目录,但Git将其视为子模块,当您不在该目录中时,它不会跟踪其内容。相反,Git将其视为来自该存储库的特定提交。

"Git不跟踪其内容"因此,内容不会被推送到您的远程设备(这就是为什么在远程设备中,您看不到子模块的内容(。

"相反,Git将其视为来自该存储库的特定提交"事实上,例如,如果你使用GitHub作为你的远程,如果你查看父项目中的子模块,而不是子模块内容,你会看到一个链接,指向最后推送到父项目的子模块存储库的提交。

现在,回答您的第二个问题:

一些特定的体系结构可以使用子模块中的文件。例如,静态站点生成器Hugo允许您将主题作为站点的子模块,并且主题的内容(包括YAML文件(由父项目使用。

另一方面,在其他看起来更接近你自己情况的情况下,这似乎不起作用。

所以我想这取决于你的项目架构,但git子模块可能不是你的最佳选择。

最新更新