【发布时间】:2020-09-19 19:02:39
【问题描述】:
假设.gitmodules 文件包含以下几行
[submodule "sub/x"]
path = sub/x
...由形式的命令产生
git submodule add $url sub/x
事后(并且在向超级项目和子模块添加了几个提交之后),我意识到我应该运行它:
git submodule add --name x $url sub/x
...这样.gitmodules 文件中与前面引用的两行相对应的两行将是
[submodule "x"]
path = sub/x
我想修复超级项目,使子模块的名称是x而不是sub/x,但路径仍然是sub/x 1.
我的直接兴趣是学习如何修复超级项目的历史记录(例如,通过交互式变基),以便最终 repo 看起来就像第二个 git submodule add 命令是一个从一开始就使用。 (FWIW,这个 repo 还没有发布,虽然我确实打算这样做。)但是,为了将来参考,我也有兴趣学习如何在不修改历史的情况下做到这一点,即通过添加一个或多个新提交到它。
我试图删除子模块并再次添加它(基于here 给出的git submodule deinit 配方),但我很快发现自己一团糟。 (我认为问题的一部分是,正如我已经提到的,我已经向子模块添加了几个提交,并在此过程中对超级项目的子模块信息进行了相应的更新。)
因此,我希望找到有关如何进行此重命名的更直接的指导。
1 有一个earlier post,其标题表明它正是在问我在这里问的问题,但实际上该帖子不仅询问如何重命名子模块,还有如何改变它的路径。原来那个问题的答案大部分内容都集中在改变模块路径的问题上。
【问题讨论】:
标签: git git-submodules