Unable to `git submodule foreach git pull`

对着背影说爱祢 提交于 2019-12-01 06:51:00

This is normally the error made when there is no remote configured.
(From this thread)

It was a patch introduced to at least fixes the regression when running "git pull" in a repository initialized long time ago that does not use the .git/config file to specify where my remote repositories are.

a better message would probably be something like:

No default remote is configured for your current branch,
and the default remote "origin" is not configured either.

I think the message missed being made user-friendly in earlier passes due to being inaccessible at the time.


So this message indicates the remote repo mentioned in .git/modules is not declared in .git/config

From git submodule

Submodules are not to be confused with remotes, which are meant mainly for branches of the same project;
submodules are meant for different projects you would like to make part of your source tree, while the history of the two projects still stays completely independent and you cannot modify the contents of the submodule from within the main project.

I believe you may have missed the step of git submodule init:

submodule init

Initialize the submodules, i.e. register each submodule name and url found in .gitmodules into .git/config.
The key used in .git/config is submodule.$name.url.
This command does not alter existing information in .git/config.
You can then customize the submodule clone URLs in .git/config for your local setup and proceed to git submodule update; you can also just use git submodule update --init without the explicit init step if you do not intend to customize any submodule locations.

If your remote repo (declared in .git/modules) is adequately referenced in .git/config, you should not have this error message anymore.

Before using (pullin) submodules, the steps:

git submodule init
git submodule update

remain necessary.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!