为什么手动更改.gitmodules不起作用?

问题描述 投票:0回答:1

我通过编辑手动删除和添加子模块

.gitmodules
;但是,执行
git submodule update --init --recursive
仅克隆之前存在的 moduleA,我手动添加的子模块未克隆。运行
git submodule
还会显示因错误而被删除的旧子模块

致命:在 .gitmodules 中找不到路径“moduleOld”的子模块映射

git submodule sync
仅再次显示moduleA。有办法解决这个问题吗?

git version-control git-submodules
1个回答
0
投票

您不应该通过编辑

.gitmodules
来手动添加/删除子模块,因为 git 还会跟踪
.git/config
文件中的条目。尝试删除子模块并在终端中提交。然后添加新的子模块。要删除子模块,请尝试:

git rm --cached path/to/submodule   #updates Git to stop tracking the submodule
rm -rf path/to/submodule            #removes the submodule files locally
git commit -m 'Remove submodule'

然后添加一个新的子模块尝试:

git submodule add <repository> <path>
git submodule update --init --recursive

如果您手动更改

.gitmodules
,我相信运行同步将同步 .git/config 中的 URL:

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

我认为这会更新 URl,但它不会添加或删除

.git/config
中的子模块条目。

© www.soinside.com 2019 - 2024. All rights reserved.