我可以在我的项目的用户可以访问的子模块上创建一个分支,而无需推送到子模块吗?

Can I create a branch on a submodule that is accessible to users of the my project, without pushing to the submodule?

编辑:答案是分叉回购协议,并将其作为子模块。就这么简单!

我在我的项目中添加了一个子模块。它是开源的,完全不受我的控制。我想修改子模块中的文件,所以我在其中创建了一个本地分支来跟踪更改。
但是,我无法将分支推送到子模块。

如何在不将分支推送到子模块本身的情况下,将我的本地子模块修改提供给项目的其他用户?我脑子里有两个想法,都不是完美的。

首先是在我的项目中创建另一个没有 .gitsubmodules 文件的分支。当我切换到这个分支时,子模块将显示为未跟踪文件,我可以添加+提交它们。这仍然允许我在将来 fetch/update 子模块,但它需要我的存储库来容纳整个子模块(这比我的项目大得多)。

第二个想法是保留一个文件夹,其中包含我在子模块中修改的所有文件。其他用户可以检查我的项目,初始化子模块,创建本地分支,然后简单地将此 "modified files" 文件夹复制并粘贴到他们的本地子模块中。这行得通,不需要我存储子模块本身,但维护起来会很痛苦。

我主要寻找的是一种通过 git 自动实现 #2 的方法。这样的事情可能吗?

感谢您的宝贵时间。

答案是简单地 fork 开源 repo,并使用我的 fork 而不是原来的作为子模块。现在我可以将我的分支向上游推送到我的分叉存储库,一切都按照我想要的方式运行!