2017-01-13 8 views
0

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

Для некоторых тестов, я создал три файла Java класса, новый, один, который я обновленное и последний, который я удалил из моей рабочей копии:

New.java 
Update.java 
Remove.java 

Сбросить все работает отлично для обновления и удаленный файл класса, но не для нового:

enter image description here

enter image description here

После перезагрузки я должен удалить New.java класс вручную:

enter image description here

Обобщенные: пропало

После Сбросить все обновления на файл Update.java и удаленный Remove.java файла были восстановлены. Отлично! Единственное, что я не понял, то почему я должен удалить новый файл New.java вручную? Может быть, у меня есть некоторые недоразумения?

Заранее благодарен!

ответ

1

Если New.java - это новый файл, который никогда не был поставлен, git reset никогда не удалит этот файл, поскольку git не знает, что с ним делать. Фактически, New.java - это незафиксированный файл, и git ничего не сделает с этим файлом, пока вы не добавите его на сцену.

+0

спасибо большое, вот в чем причина! –

3

Я не знаю SourceTree, но я думаю, что «Сбросить все» - это как сделать git checkout ., который вернет все отслеживаемые файлы, как вы описали. Чтобы удалить необработанные файлы, эквивалент командной строки будет git clean -f, или если также будут затронуты каталоги git clean -fd, а также файлы, игнорируемые .gitignore и аналогичные git clean -fdx. Поэтому, я думаю, вы ищете опцию Clean All в SourceTree, чтобы избавиться от необработанных файлов.