是否可以在不创建fork的情况下更改子模块中的几个文件?

时间:2018-07-18 15:42:07

标签: git git-submodules

我正在创建cocos2d-x游戏,并包含上游cocos fom git(它包含一些关键的修复程序和功能)。但是,使用SDKBOX时需要修补一些cocos文件(位于子模块中)。

是否可以将这些文件(甚至更好的补丁程序)包含到主存储库中?当然,可以派生cocos2d-x存储库并在那里进行修补,但这会使更新变得更加复杂(首先创建拉取请求并进行合并)。

1 个答案:

答案 0 :(得分:4)

  

是否可以在子模块中更改几个文件

是的,但这意味着父存储库将引用一个新的SHA1,代表该子模块的根树。
如果您在不推送子模块的情况下推送主仓库,则克隆SHAPO的任何人都将无法更新/签出子模块,因为SHA1未知。

因此,您需要能够将在子模块中完成的修复推回其上游存储库。

  

不创建叉子吗?

如果您拥有上游存储库,则可以直接将其回推。
但是,如果不是这样,那么仍然需要一个fork或至少一个分支新存储库,您可以将其推送回去。为您提供了update the submodule URL

我会说这仍然是推荐的方法,即使稍后会在某些请求请求中涉及到它。