将 git 子模块更改推送到我自己的 repo
Push git submodule changes to my own repo
我刚刚开始为我的 Android 应用程序使用 git 子模块,方法是遵循此 guide
我已成功克隆存储库并更改了一些内容以满足我的应用程序的需要,但我无法将这些更改推送回我的存储库。
git status
说我的子模块中有修改的内容,但我不能只 git add
那个文件夹并推送它?
如果我尝试从子模块目录推送,它实际上会尝试推送并拒绝访问,因为我不是该 repo 的贡献者。
我希望能够不时获取新的更改,但能够保留和合并我每次尝试更新子模块时修改的小代码。
实现此目标的最佳方法是什么?我必须更改推送远程来源吗?
子模块中的更改首先需要added/commited/pushed,在子模块级别。然后在超级级别,您可以简单地添加文件夹和 commit/push。
从你的问题看来,你的子模块(比如 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
中拉取更改,并 merge/rebase 您的分支(最终将它们拉到您的子模块路径)。
我刚刚开始为我的 Android 应用程序使用 git 子模块,方法是遵循此 guide
我已成功克隆存储库并更改了一些内容以满足我的应用程序的需要,但我无法将这些更改推送回我的存储库。
git status
说我的子模块中有修改的内容,但我不能只 git add
那个文件夹并推送它?
如果我尝试从子模块目录推送,它实际上会尝试推送并拒绝访问,因为我不是该 repo 的贡献者。
我希望能够不时获取新的更改,但能够保留和合并我每次尝试更新子模块时修改的小代码。
实现此目标的最佳方法是什么?我必须更改推送远程来源吗?
子模块中的更改首先需要added/commited/pushed,在子模块级别。然后在超级级别,您可以简单地添加文件夹和 commit/push。
从你的问题看来,你的子模块(比如 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
中拉取更改,并 merge/rebase 您的分支(最终将它们拉到您的子模块路径)。