更改git子模块

菩提达鲁玛

我有一个包含第三方子模块的项目,但我不是该子模块的参与者。

我必须对其某些文件(即某些项目文件)进行更改,以便我可以针对不同的平台(原始项目针对mono,而我已切换到dotnet核心),但我仍然希望能够合并最新的原始子模块存储库的更改。

使用仅将项目作为子模块的常规设置,我无法成功克隆我的项目,因为git无法找到我在原始存储库中所做的提交:

Server does not allow request for unadvertised object <my_commit_id>
Fetched in submodule path <submodule>, but it did not contain <my_commit_id>

我想做一些与git命令类似的操作,在该命令submodule update --remote --rebase中,我对子模块所做的更改将被写入到原始遥控器上的新内容之上,但是我希望能够提交对我的所做的更改超级项目,以便在克隆存储库时所做的更改将应用​​于子模块的顶部。

有什么办法可以做这样的事情吗?

子模块是一个存储库:您可以用fork替换它,它可以:

  • 添加一个upstream引用原始存储库远程
  • upstreamcommits(git fetch uptream完成
  • 重置为上游/主
  • 使用您已完成的提交进行更新(submodule update --remote --rebase,您origin/master的fork将基于localmaster重置,重置为upstream/master

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章