将git子模块的更改推送到我的仓库中。

4

我刚刚开始使用git子模块来为我的Android应用程序进行版本控制,遵循了这个指南

我成功地克隆了仓库,并对一些内容进行了更改以满足我的应用程序的需要,但是我无法将这些更改推送回我的仓库。

git status显示子模块中有修改的内容,但我不能只是使用git add命令添加该文件夹并将其推送吗?

如果我尝试从子模块目录推送,它会尝试推送并告诉我拒绝访问,因为我不是那个仓库的贡献者。

我想能够定期获取新的更改,但每次尝试更新子模块时都能保留和合并我修改过的小段代码。

为了实现这一点,最好的方法是什么?我需要更改推送的远程源吗?

2个回答

5
从你的问题中看起来,你的子模块(比如说proj-dep)在技术上是一个外部库。
假设proj-dep的代码托管在https://github.com/vendor/proj-dep上,并且你已经映射了这个路径到你的子模块。
但是,你并不仅仅是直接使用proj-dep,而是在使用经过修改的版本。
你应该创建自己的分支https://github.com/vendor/proj-dep,存储于https://github.com/alex/proj-dep,并将这个二级路径映射到你的子模块。
你可以向这个分支推送自己的更改。此外,你可以在需要时从供应商的proj-dep中拉取更改,并将你的分支合并/变基(最终将它们拉回到你的子模块路径)。

-1

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


当我尝试在子模块级别进行推送时,它会尝试推送到我克隆的远程仓库,而我不想这样做。我只想保留我的更改供自己的仓库使用,因为它们与原始子模块无关。 - Alex Ionescu
是的,您应该推送到另一个远程仓库,并定期从原始远程仓库拉取以保持与其更改同步。 - cs01

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接