Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Working with Git Submodules

Git submodules are used in this project to manage the various OE layers for reasons described in this document. See this article for an introduction to Git submodules.

There are a few commonly encountered issues described below.

Modifying Submodules

Git submodules are not checked out on a branch, but at a specific git commit. The first thing you should do when working on a submodule is check out the appropriate branch, documented in the .gitmodules file. If you forget to do this, you may get an error when pushing. If you run git branch, you’ll discover you are on the (no branch) branch. To recover from this situation, check out the branch you want to work on and then run git reflog. This command will list recent commits which you can then cherry-pick to your working branch. See this article for more information.

Submodule merge conflicts

If you get a submodule merge conflict, run git reset \<sources/submodule\>

Submodule remote changes

If the remote repository for a submodule changes, run git submodule sync to synchronize the new remote information into your working directory. This problem is most often noticed when the git submodule update command cannot find a version.