git子模块同步不起作用

aca*_*828 6 git git-submodules

我正在尝试按照这些说明更改子模块上的遥控器.

修改和保存后.gitmodules,git submodule sync我的子模块没有改变,虽然我的.git/config文件已经更新,以匹配新的远程URL .gitmodules.

我也尝试过git submodule sync --recursive,rm -rf .git/modules/<mySubmodule>按照这个提示做的没有任何区别.事实上,git submodule sync再次运行后一个命令fatal: Not a git repository: ../.git/modules/<mySubmodule>.有小费吗?

我最初git submodule add git://<mySubmodule-url>根据git docs将子模块添加到项目中.

编辑

我甚至通过自制程序更新了git到v2.1.1,仍然没有.我也尝试从头开始,甚至在两个完全不同的子模块之间切换,但我仍然得到相同的结果.总共:

$> mkdir myRepo
$> cd myRepo
myRepo$> git init .
myRepo$> git submodule add https://<path/to/my/repo>.git
myRepo$> vim .gitmodules 
# change submodule url to https://<path/to/another/repo>.git
myRepo$> git submodule sync # updates my .git/config file with the new submodule url, but all my files in the submodule are still from the old url
myRepo$> git submodule sync --recursive # doesn't do anything
myRepo$> git submodule update --init --recursive # doesn't do anything either
myRepo$> rm -rf .git/modules/<mySubmodule> # tip from SO comment linked above
myRepo$> git submodule sync
fatal: Not a git repository: ../.git/modules/<mySubmodule>
Run Code Online (Sandbox Code Playgroud)

And*_*w C 9

这似乎很烦人.不理想,但以下似乎对我有用

git submodule foreach git pull --rebase
Run Code Online (Sandbox Code Playgroud)