Подтвердить что ты не робот

Как отказаться от изменений с помощью репо

repo status показывает мне много нежелательных изменений.

Он будет дублироваться, если я буду вводить каждый проект и использовать git reset --hard.

Есть ли способ reset всех изменений с использованием репо, что-то вроде repo reset --hard?

4b9b3361

Ответ 1

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

repo sync -d

Это вернет все ваши изменения обратно к исходной версии.

Или вы можете использовать git, как указано в Управление версиями с помощью Repo и Git

Отредактировано:

Приведенная выше команда работает только с версией в это время.

Рабочая команда:

repo forall -vc "git reset --hard"

Ответ 2

Это команда, которую я использую для такого рода вещей, очень полезная

repo forall -vc "git reset --hard"

Что все здесь означает?

repo forall будет выполняться для всех репозиций.

the - v является подробным, поэтому он распечатает вывод команды

-c "COMMAND TO EXECUTE" - это фактическая команда, которую вы хотите

Ответ 3

Если вам нужно вернуть рабочую папку в состояние clean, где у вас нет локальных изменений и нет файлов без следа (т.е. где статус репо ничего не показывает), Я нашел эти два подхода полезными для репо-синхронизации и удаленных/измененных файлов

repo forall -c 'git reset --hard ; git clean -fdx' 

или

rm -rf * ; repo sync -l
// note that .repo is preserved after that

Обратите внимание, что это не эквивалентно инициализации нового локального репо и синхронизации (например, сохранение сохраняется)

Если вы не уверены, что происходит, прочитайте полную цепочку repo sync и удаленные/измененные файлы

Ответ 4

Я использую команду repo forall с синтаксисом ниже, и это помогает мне reset файлам отслеживания.

repo forall -p -c 'git checkout -f foo'

где foo следует заменить законным именем ветки.

Ответ 5

#!/bin/bash
for gitdir in $(find . -name .git); do
    pushd $(dirname $gitdir)
    git reset --hard
    popd
done

Ответ 6

В соответствии с документацией repo script поддерживает только:

  • INIT
  • синхронизация
  • старт
  • Статус
  • загрузить

Если нежелательные изменения уже загружены в репозиторий, и вы хотите, чтобы репозиторий сам возвращался к более ранней версии, вы можете использовать git reset.

Если вы хотите отменить изменения, сделанные на стороне клиента, которые еще не загружены в репо, вы можете сделать git revert.