Ответ 1
Решение, упомянутое в .gitignore файле, не игнорирующем, немного экстремально, но должно работать:
# rm all files
git rm -r --cached .
# add all files as per new .gitignore
git add .
# now, commit for new .gitignore to apply
git commit -m ".gitignore is now working"
( обязательно зафиксируйте свои изменения, которые вы хотите сохранить, чтобы избежать каких-либо инцидентов как jball037 ниже.
Опция --cached
сохранит ваши файлы нетронутыми на вашем диске, хотя.)
У вас также есть другое более мелкое решение в блоге " Создание Git игнорировать уже отслеживаемые файлы:
git rm --cached `git ls-files -i --exclude-standard`
Bassim предлагает в своем редактировании:
Файлы с пробелом в своих дорожках
Если вы получите сообщение об ошибке, например
fatal: path spec '...' did not match any files
, в пути могут быть файлы с пробелами.Вы можете удалить все остальные файлы с помощью опции
--ignore-unmatch
:
git rm --cached --ignore-unmatch `git ls-files -i --exclude-standard`
но непревзойденные файлы останутся в вашем репозитории и должны будут быть удалены явно, включив их путь с двойными кавычками:
git rm --cached "<path.to.remaining.file>"