将git子模块中的更改推送到主模块但不推送到子模块

丹尼斯

我有一个使用 Github 子模块 B 的 git 项目 A。我无法推送到 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。

稍后,如果您想要的更改集成到 upstream B,您可以切换回 project 的原始基本 url B


另一个选择,如果你A同意的话,是在你的下一次提交中,停止B作为子模块处理,并将其集成为你的 repo 的子树。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章