Skip to content

Instantly share code, notes, and snippets.

@serial-coder
Forked from dansuh17/unsubmodule.md
Created July 10, 2023 17:03
Show Gist options
  • Save serial-coder/19ebe0fb3d6551a729182e09356462ba to your computer and use it in GitHub Desktop.
Save serial-coder/19ebe0fb3d6551a729182e09356462ba to your computer and use it in GitHub Desktop.
Convert git submodule to regular directory

From Stack Overflow.

# Fetch the submodule commits into the main repository
git remote add submodule_origin git://url/to/submodule/origin
git fetch submodule_origin

# Start a fake merge (won't change any files, won't commit anything)
git merge -s ours --no-commit submodule_origin/master

# Do the same as in the first solution
git rm --cached submodule_path # delete reference to submodule HEAD
git rm .gitmodules             # if you have more than one submodules,
                               # you need to edit this file instead of deleting!
rm -rf submodule_path/.git     # make sure you have backup!!
git add submodule_path         # will add files instead of commit reference

# Commit and cleanup
git commit -m "removed submodule"
git remote rm submodule_origin
@serial-coder
Copy link
Author

git rm --cached submodule_path
git rm .gitmodules
rm -rf submodule_path/.git
git add submodule_path
git commit -m "removed submodule"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment