Возможно ли обновить репозиторий git после обновления файла gitignore?
Я просто добавил больше игнорирования (?) к моему gitignore и хотел бы удалить вещи, уже находящиеся в репо, соответствующие новому файлу.
Возможно ли обновить репозиторий git после обновления файла gitignore?
Я просто добавил больше игнорирования (?) к моему gitignore и хотел бы удалить вещи, уже находящиеся в репо, соответствующие новому файлу.
Решение, упомянутое в .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>"
Я мог бы неправильно понять, но вы пытаетесь удалить недавно проигнорированные файлы или не хотите игнорировать новые изменения этих файлов? В этом случае дело работает.
Если вы хотите удалить ранее проигнорированные файлы, используйте
git rm –cached `git ls-files -i –exclude-standard`
git commit -m 'clean up'