我有一个 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 作为子模块,这样我就可以从远程项目获取更新,但我也需要这些小更改
如果你想分享它,你就必须以某种方式发布它。
一种方法是:
- 在 github 上:fork 项目
B
- 在你的分叉上发布你想要的提交
- 在项目中
A
:更新 git 模块远程 url 以指向您的 fork,并使用您创建的提交的提交 ID。
稍后,如果您想要的更改已集成到上游B
,您可以切换回项目的原始基本urlB
.
如果您同意的话,另一种选择是在您的下一次提交中A
, 停止处理B
作为子模块,并将其集成为存储库的子树。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)