Ссылка:
https://gerrit.googlesource.com/git-repo https://source.android.com/docs/setup/reference/repo?hl=ru https://source.android.com/docs/setup/reference/repo
Установка из пакетов:
Repo дополняет Git, упрощая работу с несколькими репозиториями. # Debian/Ubuntu. $ sudo apt-get install repo # Gentoo. $ sudo emerge dev-vcs/repo You can install it manually as well as it's a single script.
Установка:
$ mkdir -p ~/.bin
$ PATH="${HOME}/.bin:${PATH}"
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
$ chmod a+rx ~/.bin/repo
Использование:
Использование репо принимает следующую форму:
repo command options
Необязательные элементы показаны в скобках []. 
Например, многие команды принимают project-list в качестве аргумента. 
Вы можете указать project-list как список имен или список путей к локальным исходным каталогам проектов:
repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]
repo init -u url [options] - Устанавливает Repo в текущий каталог. 
Эта команда создает каталог .repo/ с репозиториями Git для исходного кода Repo и стандартных файлов манифеста Android.
Параметры:
-u : укажите URL-адрес, по которому нужно получить репозиторий манифестов. 
     Общий манифест находится по адресу https://android.googlesource.com/platform/manifest 
-m : выбрать файл манифеста в репозитории. 
     Если имя манифеста не выбрано, по умолчанию используется default.xml
-b : указать ревизию, то есть конкретную manifest-branch
Синхронизировать:
repo sync [project-list]
Загружает новые изменения и обновляет рабочие файлы в вашей локальной среде, по сути выполняя git fetch во всех репозиториях Git. 
Если вы запустите repo sync без аргументов, она синхронизирует файлы для всех проектов.
Когда вы запускаете repo sync , происходит вот что:
Если проект никогда не синхронизировался, то repo sync эквивалентна git clone ; все ветки удаленного репозитория копируются в локальный каталог проекта.
Если проект уже был синхронизирован ранее, то repo sync эквивалентна:
git remote update
git rebase origin/branch
Где branch — это текущая извлеченная ветка в локальном каталоге проекта. 
Если локальная ветка не отслеживает ветку в удаленном репозитории, синхронизация проекта не происходит.
Ключевые параметры:
-c : получить с сервера только текущую ветку манифеста.
-d : переключить указанные проекты обратно на версию манифеста. 
     Эта опция полезна, если проект находится в тематической ветке, но версия манифеста необходима временно.
-f : продолжить синхронизацию других проектов, даже если проект не удалось синхронизировать.
threadcount : разделите синхронизацию между потоками для более быстрого завершения. 
              Убедитесь, что вы не перегружаете свою машину — оставьте часть процессора зарезервированной для других задач. 
              Чтобы увидеть количество доступных процессоров, сначала запустите nproc --all.
-q : работать тихо, подавляя сообщения о состоянии.
-s : синхронизировать с заведомо исправной сборкой, указанной в элементе manifest-server в текущем манифесте.
Чтобы получить дополнительные параметры, запустите repo help sync.
загрузить
repo upload [project-list] Загружает изменения на сервер проверки. Для указанных проектов Repo сравнивает локальные ветки с удаленными ветвями, обновленными во время последней синхронизации Repo. Репо предложит вам выбрать одну или несколько веток, которые не были загружены на проверку. Все коммиты в выбранных ветках затем передаются в Gerrit через соединение HTTPS. Вам необходимо настроить пароль HTTPS, чтобы включить авторизацию загрузки. Чтобы создать новую пару имени пользователя и пароля для использования через HTTPS, посетите генератор паролей . Когда Gerrit получает данные объекта через свой сервер, он превращает каждый коммит в изменение, чтобы рецензенты могли прокомментировать конкретный коммит. Чтобы объединить несколько коммитов контрольных точек в один, используйте git rebase -i перед запуском загрузки. Если вы запускаете repo upload без аргументов, он ищет во всех проектах изменения для загрузки. Чтобы редактировать изменения после их загрузки, используйте такой инструмент, как git rebase -i или git commit --amend чтобы обновить локальные коммиты. После завершения редактирования: Убедитесь, что обновленная ветка является текущей извлеченной веткой. Используйте repo upload --replace PROJECT , чтобы открыть редактор сопоставления изменений. Для каждого коммита в серии введите идентификатор изменения Gerrit в скобках. После завершения загрузки изменения имеют дополнительный набор патчей. Если вы хотите загрузить только извлеченную в данный момент ветку Git, используйте флаг --current-branch (или --cbr для краткости).
разница
repo diff [project-list] Показывает существенные изменения между фиксацией и рабочим деревом с помощью "git diff"
скачать
repo download target change Загружает указанное изменение из системы проверки и делает его доступным в локальном рабочем каталоге вашего проекта. Например, чтобы загрузить изменение 23823 в каталог вашей platform/build : repo download platform/build 23823 Запуск repo sync удаляет все коммиты, полученные при "repo download". Или вы можете проверить удаленную ветку, используя git checkout m/main