我有一个git项目A,它使用来自Github的子模块B。我不能进入Github项目B,因为它不是我的。我想在B中做一个小的更改,该更改不推送到远程B(因为我无法推送),但是应该推送到A(因此,当有人使用A时,他应该能够看到我的更改)。 我尝试在B中提交,然后在A中提交,似乎更改已正确提交。当我按A到bitbucket时,会显示带有新提交的子模块。 我试图在其他地方克隆A,但是出现以下错误:
fatal: remote error: upload-pack: not our ref 7b9e40769855bc50f3be629cd8307d76dd8ecf1b
fatal: the remote end hung up unexpectedly
Fetched in submodule path 'src/B', but it did not contain 7b9e40769855bc50f3be629cd8307d76dd8ecf1b. Direct fetching of that commit failed.
我猜找不到新提交,因为它没有被推送到B的远程。 有没有办法解决? 我希望保留B作为子模块,以便可以从远程项目中获取更新,但我也需要这些小的更改
答案 0 :(得分:1)
如果要共享它,则必须以某种方式发布它。
一种方法是:
B
A
中:更新git模块的远程url以指向您的fork,并使用提交ID作为您创建的提交。稍后,如果要将所需的更改集成到上游B
,则可以切换回项目B
的原始基本URL。
如果可以的话,另一种选择是,在对A
的下一次提交中,停止将B
作为子模块处理,并将其集成为仓库的子树。