repo status
показывает мне много нежелательных изменений.
Он будет дублироваться, если я буду вводить каждый проект и использовать git reset --hard
.
Есть ли способ reset всех изменений с использованием репо, что-то вроде repo reset --hard
?
repo status
показывает мне много нежелательных изменений.
Он будет дублироваться, если я буду вводить каждый проект и использовать git reset --hard
.
Есть ли способ reset всех изменений с использованием репо, что-то вроде repo reset --hard
?
Вы можете использовать команду repo
следующим образом, чтобы вернуть все ваши изменения:
repo sync -d
Это вернет все ваши изменения обратно к исходной версии.
Или вы можете использовать git
, как указано в Управление версиями с помощью Repo и Git
Отредактировано:
Приведенная выше команда работает только с версией в это время.
Рабочая команда:
repo forall -vc "git reset --hard"
Это команда, которую я использую для такого рода вещей, очень полезная
repo forall -vc "git reset --hard"
Что все здесь означает?
repo forall
будет выполняться для всех репозиций.
the - v
является подробным, поэтому он распечатает вывод команды
-c "COMMAND TO EXECUTE"
- это фактическая команда, которую вы хотите
Если вам нужно вернуть рабочую папку в состояние clean, где у вас нет локальных изменений и нет файлов без следа (т.е. где статус репо ничего не показывает), Я нашел эти два подхода полезными для репо-синхронизации и удаленных/измененных файлов
repo forall -c 'git reset --hard ; git clean -fdx'
или
rm -rf * ; repo sync -l
// note that .repo is preserved after that
Обратите внимание, что это не эквивалентно инициализации нового локального репо и синхронизации (например, сохранение сохраняется)
Если вы не уверены, что происходит, прочитайте полную цепочку repo sync и удаленные/измененные файлы
Я использую команду repo forall с синтаксисом ниже, и это помогает мне reset файлам отслеживания.
repo forall -p -c 'git checkout -f foo'
где foo
следует заменить законным именем ветки.
#!/bin/bash
for gitdir in $(find . -name .git); do
pushd $(dirname $gitdir)
git reset --hard
popd
done
В соответствии с документацией repo
script поддерживает только:
Если нежелательные изменения уже загружены в репозиторий, и вы хотите, чтобы репозиторий сам возвращался к более ранней версии, вы можете использовать git reset.
Если вы хотите отменить изменения, сделанные на стороне клиента, которые еще не загружены в репо, вы можете сделать git revert.