I have a submodule repo, added to my project when the remote called its main branch master. Now they renamed it to main and when I try to pull I get error:
Your configuration specifies to merge with the ref 'refs/heads/master'
from the remote, but no such ref was fetched.
I could nuke the submodule and re-add it, I suppose. But is there a more elegant solution?
CodePudding user response:
There is at least one .gitmodules file in your repository, and it should have something like
[submodule "foo"]
path = bar
url = https://github.com/baz/foo
branch = master
If branch is not there, it defaults to master. You can add branch = main. If it's there, change it to branch = main. Commit the changes in .gitmodules and run git submodule update --remote to update the submodule.
As @torek mentioned, we can also use git submodule set-branch -b main -- foo to update the submodule's branch. Note that it's not foo/, just foo without the slash, for the submodule name.
Reference: https://git-scm.com/book/en/v2/Git-Tools-Submodules
