Notes on Git

Advanced Git commands

If we just want to make a quick fix and then push it back right away, there is another way by calling the remote url directly without adding it:

git fetch https://github.com/theirusername/reponame.git theirbranch:ournameforbranch

where ournameforbranch should be the target branch haven’t been created. Then git checkout FETCH_HEAD to make changes in the new branch. Once things are done,

git push https://github.com/theirusername/reponame.git HEAD:theirbranch

If working in detached state worries you, by all means create a branch using :ournameforbranch and replace FETCH_HEAD and HEAD above with ournameforbranch.

  1. Delete the relevant section from the .gitmodules file.
  2. Stage the .gitmodules changes git add .gitmodules
  3. Delete the relevant section from .git/config.
  4. Run git rm --cached path_to_submodule (no trailing slash).
  5. Run rm -rf .git/modules/path_to_submodule
  6. Commit git commit -m "Removed submodule <name>"
  7. Delete the now untracked submodule files
    rm -rf path_to_submodule

Ref: this one.