it-swarm.com.ru

Как сохранить все игнорируемые файлы в git clean -fd?

Когда у меня есть .gitignore data/* и я запускаю git clean -fd, папка с данными и все ее файлы содержимого удаляются.

Я хочу удалить все невидимые файлы в git-репо, исключив при этом все игнорируемые файлы (т.е. НЕ удаляйте gitignored файлы). Что я мог сделать?

35
Danny Lin

Обычно Git не очищает пропущенные файлы, если не указан флаг -x, но странным образом он очищается при настройке, как вы это сделали (folder/*).

Как указал @VonC, вы должны изменить свой .gitignore- файл, чтобы игнорировать каталог (data/), а не его содержимое (data/*).

Это тонкая разница, но это важно для мерзавца.

42
talles

Я нашел еще несколько деталей. Имея /tmp/* в gitignore, git clean -fd удалит его. Как было сказано в других ответах, этого не происходит с /tmp/ в gitignore.

Но как только вы зарегистрируете какой-либо файл в этом каталоге, git clean -fd будет игнорировать этот путь. Это может быть достигнуто с помощью git add -f или добавлением !/tmp/.keep к gitignore и проверкой этого файла в.

0
prcu