Git submodules

To add a submodule:

Add submodule (another repo):

$ git submodule add <path-to-repo>

Commit and push changes.

When cloning the parent project, only empty submodule folders get pulled. To actually pull the submodules you need to initialize and update the modules.

To install a submodule:

$ git submodule init

$ git submodule update

You can do this in one go by adding –recurse-submodules.

$ git clone –recurse-submodules <path-to-repo>

If you forgot the –recurse-submodules when cloning, you can combine the ‘init’ and ‘update’ command by running:

$ git submodules update –init

And the foolproof way:

$ git submodules update –init –recursive

Posted in Git

Change default branch from master to main

# Step 1 
# create main branch locally, taking the history from master
git branch -m master main

# Step 2 
# push the new local main branch to the remote repo (GitHub) 
git push -u origin main

# Step 3
# switch the current HEAD to the main branch
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main

# Step 4
# change the default branch on GitHub to main
# https://docs.github.com/en/github/administering-a-repository/setting-the-default-branch

# Step 5
# delete the master branch on the remote
git push origin --delete master
Posted in Git