如何更改git子模块的远程存储库?

我已经建立了一个带有子模块的git存储库。 我可以告诉子模块自己更改其远程存储库路径,但我不知道如何告诉父存储库如何更改子模块的远程存储库路径。 git

若是我有点不幸而且必须手动操做,我不会感到惊讶,由于即便删除子模块也不容易。 github


#1楼

什么对我有用(在Windows上,使用git版本1.8.3.msysgit.0): vim

  • 使用新存储库的路径更新.gitmodules
  • 从“.git / config”文件中删除相应的行
  • 删除“.git / modules / external”目录中的相应目录
  • 删除签出的子模块目录(不肯定是否有必要)
  • 运行git submodule initgit submodule update
  • 确保签出的子模块处于正确的提交状态,而后提交,由于散列可能会有所不一样

完成全部这些以后,一切都处于我指望的状态。 我认为存储库的其余用户在更新时会有相似的痛苦 - 在提交消息中解释这些步骤是明智的! 编辑器


#2楼

这些命令将在命令提示符下完成工做,而不会更改本地存储库上的任何文件 url

git config --file=.gitmodules submodule.Submod.url https://github.com/username/ABC.git
git config --file=.gitmodules submodule.Submod.branch Development
git submodule sync
git submodule update --init --recursive --remote

请查看博客中的屏幕截图: 将GIT子模块更改URL / Branch到同一存储库的其余URL /分支 spa


#3楼

git config --file=.gitmodules -e打开默认编辑器,您能够在其中更新路径code


#4楼

简单来讲,您只须要编辑.gitmodules文件,而后从新同步和更新: rem

经过git命令或直接编辑文件: get

git config --file=.gitmodules -e

要不就: 同步

vim .gitmodules

而后从新同步和更新:

git submodule sync
git submodule update --init --recursive --remote

#5楼

您应该只能编辑.gitmodules文件来更新URL,而后运行git submodule sync以反映对超级项目和工做副本的更改。

相关文章
相关标签/搜索