Cannot remove submodule from Git repo [duplicate]
Asked Answered
P

2

19

I have a subproject in a Git repo that I want to remove but am not able to. On the GitHub web interface the submodules are shown with black (or grey) folder icons and are not clickable.

submodule in git repo

There are some issues with that folder that even if my local code has files in that folder and I push to my repository, changes are not applied on the GitHub remote. Somehow this folder is ignored. I checked that it is not in .gitignore file.

On trying to remove the subproject I used:

git submodule deinit submodule-name

but it gives error that

error: pathspec 'submodule-name' did not match any file(s) known to git. Did you forget to 'git add'?

What's the issue here?

Philippians answered 27/1, 2014 at 12:57 Comment(6)
Try removing the submodule this wayPhillip
for reference: the github icons could be found here: github.com/styleguide/css/7.0 The blue ones are used with class .octicon-file-directory the grey one is .octicon-file-submodule, so I also guess that it's something submodule related.Astringent
@random At first I did not even know that the folder with different icon is submodule. I am completely new to this.Philippians
Your question says you found out it was a submodule, and your answer says the question is a duplicate as wellFauch
@Fauch It was a doubt that it is submodule and with that doubt I tried a command (mentioned in question). That did not work and thus I thought it might be a submodule and it might not be. Second thing my question did not say that it was submodule, you edited it to sound like that. Please review my old question by considering my arguments that I was not sure that it was a submodule.Philippians
The question still contains your original reference to subproject, but adds the new reference to submodule you have chosen to include in your answer.Fauch
U
37

If the git submodule deinit fails (maybe because the .gitmodules doesn't list that submodule), try to remove at least the special entry in the index:

git rm --cached submodule-name
git commit -m "Remove submodule entry"
git push

The gray folder should then be gone on GitHub side.

Ungenerous answered 27/1, 2014 at 13:12 Comment(4)
fatal: pathspec 'submodule-name' did not match any filesIntaglio
@frageDE Please ask a new question, with all relevant details (OS version, git version, ...)Ungenerous
git push will not work because it will expect some origin. How can I make it work?Wingspread
@Wingspread Specify origin on the first push: git push -u origin myBranch. See "Why do I need to explicitly push a new branch?".Ungenerous
P
6

This worked https://mcmap.net/q/13595/-how-to-un-submodule-a-git-submodule :

git rm --cached path/to/submodule
rm -rf path/to/submodule
Philippians answered 27/1, 2014 at 13:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.