Ответ 1
- Изменить
.gitignore
в соответствии с файлом, который вы хотите игнорировать. -
git rm --cached /path/to/file
См. также:
Я загрузил множество файлов, которые я сейчас хочу игнорировать. Как я могу сказать git, чтобы игнорировать эти файлы из будущих коммитов?
EDIT: я тоже хочу удалить их из репозитория. Это файлы, созданные после сборки или для поддержки инструментария для конкретного пользователя.
.gitignore
в соответствии с файлом, который вы хотите игнорировать.git rm --cached /path/to/file
См. также:
После редактирования .gitignore
в соответствии с игнорируемыми файлами вы можете сделать git ls-files -ci --exclude-standard
, чтобы просмотреть файлы, включенные в списки исключений; вы можете сделать git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
, чтобы удалить их из репозитория (не удаляя их с диска).
Изменить. Вы также можете добавить это как псевдоним в свой файл .gitconfig, чтобы вы могли запускать его в любое удобное для вас время. Просто добавьте следующую строку в раздел [alias]:
apply-gitignore = !git ls-files -ci --exclude-standard -z | xargs -0 git rm --cached
(Флаг -r
в xargs
предотвращает запуск git rm
пустым результатом и печать его сообщения об использовании, но может поддерживаться только GNU findutils. Другие версии xargs
могут иметь или не иметь аналогичный вариант.)
Теперь вы можете просто набрать git apply-gitignore
в своем репо, и это поможет вам!
чтобы оставить файл в репо, но игнорировать его будущие изменения:
git update-index --assume-unchanged <file>
и отменить это:
git update-index --no-assume-unchanged <file>
чтобы узнать, какие файлы были установлены таким образом:
git ls-files -v|grep '^h'
кредит для первоначального ответа на http://blog.pagebakers.nl/2009/01/29/git-ignoring-changes-in-tracked-files/
Убедитесь, что ваше фактическое репо - это последняя версия
.gitignore
, как вы пожелаетеgit rm -r --cached .
git add .
затем зафиксируйте как обычно
Старый вопрос, но некоторые из нас находятся в git-posh
(powershell). Это решение для этого:
git ls-files -ci --exclude-standard | foreach { git rm --cached $_ }
Выполните следующие действия:
Добавить путь к gitignore
файлу
Запустите эту команду
git rm -r --cached foldername
фиксировать изменения как обычно.