Какой самый эффективный способ получить чистую песочницу для мерзавцев? - PullRequest
9 голосов
/ 17 марта 2012

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

Я знаю о git reset --hard HEAD, и это решает часть проблемы. Но я думаю, что я хочу сделать, это удалить все неотслеживаемые и игнорируемые файлы. Я мог бы сделать это методом грубой силы и просто сделать:

rm -rf *
git checkout -f

Но должен быть более эффективный способ сделать это. Есть идеи?

Ответы [ 2 ]

13 голосов
/ 17 марта 2012

( Расширен для потомков )

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

git reset --hard HEAD

вернет ваши файлы в состояние, в котором они находятся в HEAD, удалив любые модификации (даже если они были подготовлены к выполнению)

git clean -f -d -x

удалит все неотслеживаемыефайлы или каталоги, включая игнорируемые файлы (благодаря @Jefromi)

0 голосов
/ 17 марта 2012

Разве отдельный клон репо для CI не является лучшим решением?

Вы просто извлекаете | клон из вашего рабочего репо всех зафиксированных изменений до CI-задания (без каких-либо артефактов и локальных изменений)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...