在 git 中没有真正的方法可以做到这一点。而且,如果您不会将同时影响两棵树的更改作为一个工作单元进行,那么就没有充分的理由为两者使用一个存储库。我以为我会错过这个 Subversion 功能,但我发现创建存储库的管理精神开销非常小(仅仅是因为存储库存储在它们的工作副本旁边,而不是要求我明确选择工作副本),我习惯于制作许多小型的单一用途存储库。
但是,如果您坚持(或确实需要),您可以创建一个仅包含mytheme
和myplugins
目录的 git 存储库,并在 WordPress 安装中对它们进行符号链接。
MDCore 写道:
提交到例如mytheme将增加myplugin的修订号
请注意,如果您决定将两个目录放在一个存储库中,这对 git 来说不是问题,因为 git 完全消除了任何形式的单调增加修订号的概念。
在 git 中将哪些东西放在一个存储库中的唯一标准是它是否构成一个单元,即。在您的情况下,是否存在单独查看每个目录中的编辑没有意义的更改。如果您有更改需要同时编辑两个目录中的文件并且编辑属于一起,则它们应该是一个存储库。如果没有,那么不要将它们放在一起。
Git 真的很想让你为不同的实体使用不同的存储库。
子模块
子模块并没有解决将两个目录都保存在一个存储库中的愿望,因为它们实际上会强制为每个目录拥有一个单独的存储库,然后使用子模块将它们放在另一个存储库中。更糟糕的是,由于 WordPress 安装中的目录不是同一目录的直接子目录,并且也是具有许多其他文件的层次结构的一部分,因此将每个目录的存储库用作统一存储库中的子模块将没有任何好处,因为统一存储库不会反映任何用例/需求。