Repo is a tool provided by Google that simplifies using Git in the context of the Android source.
# Make a directory where Repo will be stored and add it to the path
$ mkdir ~/bin
$ PATH=~/bin:$PATH
# Download Repo itself
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
# Make Repo executable
$ chmod a+x ~/bin/repo
# Create a directory for the source files
# This can be located anywhere (as long as the fs is case-sensitive)
$ mkdir WORKSPACE
$ cd WORKSPACE
# Install Repo in the created directory
# Use a real name/email combination, if you intend to submit patches
$ repo init -u https://github.com/Infinitive-OS/platform_manifest -b m-6.0
This is what you will run each time you want to pull in upstream changes. Keep in mind that on your first run, it is expected to take a while as it will download all the required Android source files and their change histories.
# Let Repo take care of all the hard work
$ repo sync -j#
# -j# is the no of cores.
# For example : repo sync -j8
As the device value, you just feed it with the device codename (for example, 'hammerhead' for the Nexus 5).
# Go to the root of the source tree...
$ cd WORKSPACE
# ...and run the builder tool.
$ . build/envsetup.sh
$ brunch device