Oliver Williams
Oliver Williams

Reputation: 6364

Git "fatal: no submodule mapping found in .gitmodules for path.." but no submodule reference found

I have pulled a company repo down and started working; the initial branch was master. In attempting to git checkout I'm encountering the following error consistently (backslash = line break):

git -c diff.mnemonicprefix=false -c core.quotepath=false -c \
    credential.helper=sourcetree checkout master 
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.  #so far, so good..


git -c diff.mnemonicprefix=false -c core.quotepath=false \
     -c credential.helper=sourcetree submodule update --init --recursive 
fatal: no submodule mapping found in .gitmodules for path 'vendor/omnipay/pin'
Completed with errors, see above

I have searched for answers on this but all of them involve the presence of some reference to submodule somewhere, including this one here. However:

  1. .git/config - contains no reference to submodule(s) at all

  2. vendor/omnipay/pin - this directory is empty including no hidden dot-files.

  3. There is no string submodule in vendor/omnipay or even vendor/ for that matter

Again, other posts don't seem to apply as there is no file or submodule line to reference/remove. What is the problem here and how do I fix it?

Upvotes: 1

Views: 3512

Answers (1)

VonC
VonC

Reputation: 1328562

that returns 160000 commit 04e778e9689882d4c40419263014068b69b93168 vendor/omnipay/pin

It is a "gitlink", a special entry in the index, recording the sHA1 for the root tree of a nested Git repository.
That is why the folder appears empty: it is a placeholder, for a nested repository.

If you have a .gitmodules file, there should be an entry mentioning where to look for the remote repository which is supposed to be checked out at that path.

If not, try at least a git rm vendor/omnipay/pin (no trailing slash), followed by a git submodule update --init --recursive

Upvotes: 1

Related Questions