git子模块同步不起作用

时间:2014-09-29 20:18:13

标签: git git-submodules

我试图按照these instructions更改子模块上的遥控器。

修改并保存.gitmodules后,虽然我的git submodule sync文件已更新为与{{1}中的新远程网址相匹配,但我的子模块.git/config尚未更改。 }}

我还试过了.gitmodules,按照this tip git submodule sync --recursive做了rm -rf .git/modules/<mySubmodule>没有任何区别。实际上,运行后一个命令然后git submodule sync再次给出fatal: Not a git repository: ../.git/modules/<mySubmodule>。有什么提示吗?

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

修改

我甚至通过自制软件将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>

1 个答案:

答案 0 :(得分:8)

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

git submodule foreach git pull --rebase