Как мне сделать нетронутую проверку с помощью git? - PullRequest
4 голосов
/ 06 февраля 2012

Как мне вернуть мой рабочий каталог в состояние, в котором он был бы, если бы я сделал новый клон и извлек текущую версию?

Для подрывной деятельности я бы сделал:

$ svn status --no-ignore | awk '$1 == "?" { print $2 }' | xargs rm -r

и для ртутного:

$ hg status --ignored --unknown | awk  ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r

Так что ответы в той же строке в порядке.Но что-то вроде git checkout --clean -r b4a23 было бы лучше.

Ответы [ 4 ]

18 голосов
/ 07 февраля 2012

(подготовиться к потере всех локальных незафиксированных изменений:)

git reset --hard
git clean -dfx .

Как уже упоминалось, вы можете использовать git stash, чтобы временно сохранить ссылку на локальные ожидающие изменения в «псевдо ветке» (т.е.заначка).

1 голос
/ 30 августа 2018

В дополнение к @ sehe's answer вы можете создать псевдоним, чтобы упростить его.

git config --global alias.pristine '!git reset --hard && git clean -dffx'

Тогда вы можете просто позвонить git pristine.

0 голосов
/ 07 февраля 2012

Попробуйте git reset --hard <revision>

См. Эту страницу для хороших примеров для команды сброса: http://linux.die.net/man/1/git-reset

0 голосов
/ 07 февраля 2012

Вы можете использовать git stash для сохранения текущих изменений, затем вы можете git stash apply, чтобы вернуть ваши изменения.

...