The meta-git project is an application that makes working with a meta repo (via the use of git submodules) simple. The true power of meta-git is that it abstractions advanced git usage and configuration to make it easy for any developer to get on board.
"A meta repo is a repo that allows tracking of various repos at a particular configuration"
This becomes beneficial when you require repos to be at a particular version in order for your project to work correctly (ie. you require a third party project to remain at a particular version).
Once you have cloned this repo locally, you will need to install to be able to use it globally in your shell.
Run the following to install:
> ./meta-git install
Note: If you rely on auto-complete for commands, you'll need to restart your terminal.
The commands used in meta-git are analogous to git's commands (with a couple extra) so there is little learning curve if you are a familiar with git. To get the most recent usage of meta-git , please check its help message by going:
> meta-git -h
"Missing changes in the meta repo"
If you are working on repos that are submodules and haven't set the meta repo to now use the new branch, your changes are only visible locally. Anyone trying to use your meta repo branch would get the default branch of the submodules not the branch you intended. Easy fix is to use meta-git set action to ensure changes are made and are preserved.
"Repos are in a detached state"
As the meta repo helps us to track changes in submodules, it does not use the branch name to track but rather the commit hash of the repo. It is still tracking said branch but it will show it is a detached state.