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

时间:2019-07-22 15:36:34

标签: git git-submodules

编辑:答案是分叉仓库,并使其成为子模块。很简单!

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

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

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

第二个想法是保留一个文件夹,其中包含我在子模块中修改的所有文件。其他用户可以签出我的项目,初始化子模块,创建本地分支,然后简单地将此“修改后的文件”文件夹复制并粘贴到其本地子模块中。这行得通,并且不需要我自己存储子模块,但是要维护它会非常痛苦。

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

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

答案是简单地分叉开源仓库,并使用我的分叉代替原始的作为子模块。现在,我可以将分支推到我的分叉仓库中,一切都可以按照我的意愿正常工作!