我已经将一个 Git 存储库(包含几个子模块)移动到本地磁盘上的另一个目录。任何 git 命令都会产生错误:
fatal: Not a git repository: <absolute path to .git/modules/*>
该错误源于在不同位置编码的文件的绝对路径[1]。两个问题:
- 是否有用于修复这些路径的 Git 命令,即,使它们相对?[2]
- 有没有办法确保未来的 Git 存储库只使用相对路径?[3]
谢谢!
笔记
我注意到对于所有子模块,该
.git
文件包含:gitdir: <absolute path to repository>
core.worktree
每个子模块 ( ) 中的参数.git/modules/*/config
设置为该子模块的绝对路径。我不是在寻找 shell 命令,而是在寻找原生 Git 方法。
我不确定绝对路径是否是使用较旧版本的 Git 创建的,而较新版本的 Git 则采用了相对路径。