git - 如何重命名带有子模块的 git 存储库?

标签 git repository git-submodules

我在目录 projects/myRepo 中有一个带有子模块的 git 存储库,我想将该目录重命名为 projects/my-repo

根据 this问题可以简单地用 mv 来完成。但是在带有子模块的 repo 中,git 不断告诉我

fatal: Not a git repository: projects/myRepo/.git/path/to/submodule```

即使是 git status

子模块配置:

[submodule "path/to/submodule"]  
   path = path/to/submodule  
   url = https://github.com/user/projectName.git  

不知何故,子模块的“内部路径”没有得到更新?!有没有办法告诉 git 更新这些子模块路径?

最佳答案

更改项目目录后,我也遇到了同样的错误。我有一个 iOS 6 XCode 4 项目,但这不重要。

对于每个子模块,您需要更改它认为自己所在的绝对路径。该路径在该子模块的 .git 文件中设置。子模块中的 .git 是一个文件,而不是标准 git 目录中的一个目录

对于每个子模块,更改 .git 文件中的 .gitdir 行。这是我的项目中的一个示例:

文件:/path/to/project/submodules/RestKit/.git

之前 gitdir:/path/to/project//.git/modules/submodules/RestKit

之后 gitdir:/path/to/project//.git/modules/submodules/RestKit

关于git - 如何重命名带有子模块的 git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878860/

相关文章:

git 日志 : only show yesterday's commit

git - 是否可以在 git 中 merge 分支并保留历史记录?

git - 从命令行重命名 Github 存储库

svn - SVN:如何比较工作副本和版本库?

git - Git 中的什么等同于 ClearCase 中的只读组件?

git - 更改 git 模块分支

git - 持续部署到 Azure 上的 Dev/TestProd

wordpress - 使用SSH连接到服务器上的Git

ssh - gitlab.com SSH连接超时

git - 如何将子模块添加到github存储库