将git子模块更改为我自己的repo

时间:2016-08-14 16:22:07

标签: git git-submodules

我已经开始在我的Android应用程序中使用git子模块了guide

我已成功克隆了回购并更改了一些内容以满足我的应用需求,但我无法将这些更改推回到我的回购中。

git status说我的子模块中有修改过的内容,但我不能git add该文件夹并将其推送?

如果我尝试从子模块目录推送它实际上会尝试推送并拒绝访问,因为我不是该回购的贡献者。

我希望能够不时地获取新的更改,但是每次我尝试更新子模块时都能保留并合并我修改的小代码。

为实现这一目标,最好的方法是什么?我是否必须更改推遥控原点?

2 个答案:

答案 0 :(得分:2)

从您的问题看来,您的子模块(例如proj-dep)在技术上似乎是一个外部库。

我们假设proj-dep的代码托管在https://github.com/vendor/proj-dep,您已将此路径映射到您的子模块。

但是,您不是简单地使用proj-dep,而是使用相同的修改版本。

您应该创建自己的https://github.com/vendor/proj-dephttps://github.com/alex/proj-dep的分叉,并将第二条路径映射到您的子模块。

您可以将自己的更改推送到此分支。此外,您可以在需要时从供应商的proj-dep提取更改并合并/重新绑定您的fork(最终将它们拉到您的子模块路径)。

答案 1 :(得分:0)

子模块中的更改需要首先在子模块级别添加/提交/推送。然后在超级级别,您只需添加文件夹并提交/推送。