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.

Revisions

  1. Ryan Muller created this gist May 5, 2016.
    21 changes: 21 additions & 0 deletions unsubmodule.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    From [Stack Overflow](http://stackoverflow.com/questions/1759587/un-submodule-a-git-submodule).

    ```shell
    # 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
    ```