На этой странице есть описание того, что делает repo sync
. В обычном случае это будет больше похоже на git pull --rebase
, чем git pull
. Процитирую, что говорит эта страница:
Как работает синхронизация репо
Когда вы запускаете синхронизацию репо, вот что происходит:
Если проект никогда не был синхронизирован, то синхронизация репо эквивалентна git clone. Все ветви в удаленном хранилище копируются в локальный каталог проекта.
Если проект уже был синхронизирован один раз, то синхронизация репо эквивалентна:
git remote update
git rebase origin/branch
где ветвь является текущей извлеченной веткой в локальной директории проекта. Если локальная ветвь не отслеживает ветку в удаленном хранилище, синхронизация для проекта не будет.
Если операция git rebase приводит к конфликтам слияния, вам нужно использовать обычные команды 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
.