2015-07-27 3 views
1

Итак, вот сценарий, у меня есть проект, который имеет несколько коммитов, и недавно я установил загрузку новых пакетов в свой проект и инициировал их.Как удалить все локальные изменения git и вернуться к старой фиксации?

Я пошел и совершил эти изменения (не нажал), но затем понял, что забыл протестировать основной компонент. Тестирование потерпело неудачу, и я теперь сделал такой беспорядок моего кода, мой проект не удалось построить, и я не могу его решить.

Я могу выбрать предыдущую фиксацию и проверить ее, которая возвращает любые измененные файлы, однако все файлы, добавленные новыми пакетами, все еще существуют.

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

+0

Слышали ли вы о 'reset --hard'? Похоже, это может быть то, что вам нужно. Обязательно прочитайте об этом, прежде чем использовать его –

ответ

0

Благодаря подталкивание от Castelijns

@ Тим
git reset --hard <commit number> 

сбрасывает текущую ветвь к, а затем делает файлы в вашем рабочем дереве же, как версии в

Вы будете все еще остаются с все неотслеживаемые файлы, однако

git clean -f 

удалит все неотслеживаемые файлы, так что ваша рабочая копия и последний коммит теперь должны точно соответствовать

3

git reset --hard <good commit>reset все Отслеживается файлов с вашей рабочей копии.

git clean -df будет clean ваш рабочий каталог с файлами, которые не отслеживаются. -d удалит каталоги, которые не отслеживаются.

Используйте оба эти средства с осторожностью.

Смежные вопросы