Я зафиксировал множество файлов, которые теперь хочу игнорировать. Как я могу сказать git игнорировать эти файлы от будущих коммитов?
РЕДАКТИРОВАТЬ: я тоже хочу удалить их из хранилища. Это файлы, созданные после сборки или для поддержки пользовательских инструментов.
Ответы:
.gitignore
чтобы соответствовать файлу, который вы хотите игнорироватьgit rm --cached /path/to/file
Смотрите также:
источник
После редактирования,
.gitignore
чтобы соответствовать игнорируемым файлам, вы можетеgit ls-files -ci --exclude-standard
просмотреть файлы, включенные в списки исключений; Вы можете сделатьудалить их из репозитория (не удаляя их с диска).
Редактировать : Вы также можете добавить это как псевдоним в ваш файл .gitconfig, чтобы вы могли запускать его в любое время. Просто добавьте следующую строку в раздел [alias] (измените при необходимости для Windows или Mac):
(
-r
Флаг вxargs
запрещаетgit rm
запускать пустой результат и распечатывать его сообщения об использовании, но может поддерживаться только GNU findutils. Другие версииxargs
могут иметь или не иметь подобную опцию.)Теперь вы можете просто ввести
git apply-gitignore
свой репо, и он сделает всю работу за вас!источник
!
до git? хорошо ... мой работал какalias apply-gitignore="git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached"
. ТКС!for /F "tokens=*" %a in ('git ls-files -ci --exclude-standard') do @git rm --cached "%a"
-r
это значение по умолчанию и не принимается версиями BSD. Так что убери-r
.чтобы оставить файл в репозитории, но игнорировать будущие изменения в нем:
и отменить это:
чтобы узнать, какие файлы были установлены таким образом:
благодарность за оригинальный ответ на http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/
источник
git ls-files -ci --exclude-standard -z | xargs -0 git update-index --assume-unchanged
если это помогает.git rm --cached
удалит файл в хранилище, что не отвечает требованиям проверки. Спасибо. Я очень ценю это. Ваш ответ мне очень помогает.Убедитесь, что ваш реальный репозиторий - самая последняя версия
.gitignore
как хотитеgit rm -r --cached .
git add .
затем совершите как обычно
источник
git reset HEAD
(не забудьте спрятать любые изменения)Старый вопрос, но некоторые из нас в
git-posh
(powershell). Это решение для этого:источник
Следуй этим шагам:
Добавить путь к
gitignore
файлуЗапустите эту команду
совершать изменения как обычно.
источник