Справочник по командам репозитория (original) (raw)

Repo дополняет Git, упрощая работу с несколькими репозиториями. См. раздел « Инструменты управления исходным кодом » для объяснения взаимосвязи между Repo и Git. Для получения дополнительной информации о Repo см. Repo README .

Использование репо принимает следующую форму:

repo command options

Необязательные элементы показаны в скобках [ ]. Например, многие команды принимают project-list в качестве аргумента. Вы можете указать project-list как список имен или список путей к локальным исходным каталогам для проектов:

repo sync [project0 project1 ... projectn] repo sync [/path/to/project0 ... /path/to/projectn]

помощь

На этой странице просто выделены ключевые параметры. Полную информацию см. в справке по командной строке. Когда Repo установлен, вы можете найти последнюю документацию, начиная со сводки всех команд, выполнив:

repo help

Вы можете просмотреть подробную информацию о любой команде, запустив ее в дереве репозитория:

repo help command

Например, следующая команда выводит описание и список параметров для аргумента init Repo, который инициализирует Repo в текущем каталоге. (Подробности см. в разделе init .)

repo help init

Или, чтобы увидеть только список доступных опций, запустите:

repo command --help

Например:

repo init --help

в этом

repo init -u url [options]

Устанавливает Repo в текущий каталог. Это создает .repo/ с репозиториями Git для исходного кода Repo и стандартными файлами манифеста Android.

Опции:

Примечание. Для всех оставшихся команд Repo текущий рабочий каталог должен быть либо родительским каталогом .repo/ , либо подкаталогом родительского каталога.

синхронизировать

repo sync [project-list]

Загружает новые изменения и обновляет рабочие файлы в вашей локальной среде, по существу выполняя git fetch во всех репозиториях Git. Если вы запускаете repo sync без аргументов, она синхронизирует файлы для всех проектов.

Когда вы запускаете repo sync , происходит следующее:

git remote update  
git rebase origin/branch  

где branch — это извлеченная в данный момент ветвь в локальном каталоге проекта. Если локальная ветвь не отслеживает ветвь в удаленном репозитории, то для проекта не выполняется синхронизация.

После успешного выполнения repo sync код в указанных проектах обновляется и синхронизируется с кодом в удаленном репозитории.

Вот ключевые параметры. См. 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 для обновления ваших локальных коммитов. После завершения редактирования:

# Replacing from branch foo  
[ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...  
[ 2829 ] ec18b4ba Update proto client to support patch set replacments  
# Insert change numbers in the brackets to add a new patch set.  
# To create a new change record, leave the brackets empty.  

После завершения загрузки изменения имеют дополнительный набор исправлений.

Если вы хотите загрузить только проверенную в данный момент ветку Git, используйте флаг --current-branch (или --cbr для краткости).

разница

repo diff [project-list]

Показывает незавершенные изменения между фиксацией и рабочим деревом с помощью git diff .

скачать

repo download target change

Загружает указанное изменение из системы обзора и делает его доступным в локальном рабочем каталоге вашего проекта.

Например, чтобы загрузить изменение 23823 в каталог платформы/сборки:

repo download platform/build 23823

Запуск repo sync удаляет все коммиты, полученные с помощью repo download . Или вы можете проверить удаленную ветку, используя git checkout m/master .

Примечание. Существуют задержки репликации на все серверы по всему миру, поэтому существует небольшая задержка зеркального отображения между моментом, когда изменение отображается в Интернете в Gerrit , и моментом, когда repo download может найти изменение для всех пользователей.

для всех

repo forall [project-list] -c command

Выполняет указанную команду оболочки в каждом проекте. Следующие дополнительные переменные среды доступны через repo forall :

Опции:

чернослив

repo prune [project-list]

Сокращает (удаляет) темы, которые уже объединены.

Начало

repo start branch-name [project-list]

Начинает новую ветку для разработки, начиная с ревизии, указанной в манифесте.

Аргумент BRANCH_NAME содержит краткое описание изменений, которые вы пытаетесь внести в проекты. Если вы не знаете, рассмотрите возможность использования имени default .

Аргумент project-list проектов указывает, какие проекты участвуют в этой тематической ветке.

Примечание. Точка ( . ) — это сокращение для проекта в текущем рабочем каталоге.

статус

repo status [project-list]

Сравнивает рабочее дерево с промежуточной областью (индекс) и самой последней фиксацией в этой ветке (HEAD) в каждом указанном проекте. Отображает сводную строку для каждого файла, в котором есть разница между этими тремя состояниями.

Чтобы увидеть статус только текущей ветки, запустите repo status . . Информация о состоянии отображается по проектам. Для каждого файла в проекте используется двухбуквенный код.

В первом столбце заглавная буква указывает, насколько промежуточная область отличается от последнего зафиксированного состояния.

Письмо Значение Описание
- Без изменений То же самое в HEAD и индексе
А Добавлен Не в HEAD, в индексе
М Изменено В HEAD, измененный в индексе
Д Удалено В HEAD, а не в индексе
р переименован Не в HEAD, путь изменен в индексе
С Скопировано Не в HEAD, скопировано из другого в индексе
Т Режим изменен То же содержимое в HEAD и индексе, изменен режим
U Необъединенный Конфликт между HEAD и индексом; требуется разрешение

Во втором столбце строчная буква указывает, чем рабочий каталог отличается от индекса.

Письмо Значение Описание
- Новый/неизвестный Не в индексе, в рабочем дереве
м Изменено В индексе, в рабочем дереве, изменено
д Удалено В индексе, а не в рабочем дереве

Обработка ошибок репо

git commit -a # Commit local changes first so they aren't lost. repo start branch-name # Start the branch git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start repo upload .

Репозиторий с repo: error: no branches ready for upload , появляется, когда команда repo start не была запущена в начале сеанса. Для восстановления вы можете проверить идентификатор коммита, запустить новую ветку, а затем объединить ее.