如何将我的项目特定文件放在 git 子模块中


How do I have my project specific files inside a git submodule?

我有一个cakephp项目。让我们称之为超级项目。

它有自己的github存储库。

超级有从这个存储库中提取的 git 子模块。 https://github.com/predominant/TwigView

问题是我需要有自己的项目特定扩展名,所以我需要在 https://github.com/predominant/TwigView 的 Lib 文件夹中创建新文件,并且我需要在文件视图中添加require_once语句.php https://github.com/predominant/TwigView

我想尽可能多地维护 git 子模块。

我知道我可以分叉 https://github.com/predominant/TwigView 并添加特定于项目的扩展文件和更改。

然后,Super将把这个分叉版本作为git子模块。

但是,我对此并不满意,因为这意味着

  1. 从上游更新分叉版本稍微困难一些
  2. 我需要为每个项目有 1 个分叉版本。

Project Super 和其他 cakephp 项目中将 https://github.com/predominant/TwigView 用作 git 子模块的最干净、最易于维护的方式是什么?

  1. 不,更新分叉项目应该要困难得多。
    如果只是将上游(原始TwigView存储库)添加为远程,则可以将任何更改从上游拉取到本地子模块,然后推送回分支。
    (如"为分叉的 Github 存储库提取新更新"中所述)
    当然,它稍微困难一些,但这是推荐的工作流程。
  2. 为什么每个存储库一个分叉?
    分叉背后的想法是获得发布权限(您可以推送到分叉,因为您拥有它)。
    为什么不在唯一的TwigView分叉中推送到每个项目的分支?