Ответ 1
Вот описание этой страницы того, что делает repo sync
. В обычном случае он будет больше похож на git pull --rebase
, чем git pull
. Чтобы процитировать, что говорит эта страница:
Как работает синхронизация репо
Когда вы запускаете репо-синхронизацию, это происходит:
Если проект никогда не был синхронизирован, то синхронизация репо эквивалентна git clone. Все ветки в удаленном репозитории копируются в локальный каталог проекта.
Если проект уже синхронизирован один раз, то синхронизация репо эквивалентна:
git remote update git rebase origin/branch
где ветка - это текущая ветвь в локальном каталоге проекта. Если локальный филиал не отслеживает ветку в удаленном репозитории, то для проекта не будет выполняться синхронизация.
Если операция reba git приводит к конфликтам слиянием, вам нужно будет использовать обычные команды git (например,
git rebase --continue
) для разрешения конфликтов.Команда repo sync также обновляет частные репозитории в каталоге
.repo/
.
По существу git remote update
обеспечивает, чтобы ваши ветки удаленного отслеживания (включая origin/branch
) были обновлены, запустив git fetch origin
. (На самом деле поведение git remote update
более сложное, чем это, и зависит от вашей конфигурации git, но в типичной настройке он будет запускать git fetch [remotename]
для каждого из ваших пультов.) Затем git rebase origin/branch
перезаписывает ваш branch
, переигрывая все ваши коммиты, которые не присутствуют выше на origin/branch
.