Игнорирование содержимого уже зарегистрированного каталога?
У меня есть git-репозиторий, который используется только для хранения графических и звуковых файлов, используемых в нескольких проектах. Все они находятся в одном каталоге без подкаталогов. Теперь я только что создал сценарий для копирования этих активов из другого, структурированного каталога с несколькими уровнями подкаталогов.
Теперь я хочу, чтобы git отслеживал только (исходную) иерархическую файловую структуру, а (целевой) плоский каталог (со всеми файлами в одной куче) игнорировался.
Я добавил целевой каталог в .gitignore, но git всё равно отслеживает изменения в нём. Я думал, что если я зафиксирую удаление старого файла в целевом каталоге, git перестанет отслеживать новое содержимое (скопированное скриптом), но этого не происходит.
Как заставить git забыть о целевом каталоге?
Эта команда заставит git отследить ваш каталог и все файлы под ним, не удаляя их:
git rm -r --cached
.Опция
-r
приводит к удалению всех файлов под вашей директорией.Опция
--cached
приводит к удалению файлов только из индекса git'а, а не из вашей рабочей копии. По умолчаниюgit rm
удалит ``.Если вам необходимо, чтобы отслеживаемый файл (проверил), но не хотите, чтобы отслеживать дальнейшие изменения файла, удерживая ее в свой локальный репозиторий, а также в удаленный репозиторий, это может быть сделано с:
После этого любые изменения в этот файл не будет отображаться в статус
ГИТ
.Для подкаталога
blah/
, добавленного в git, оба следующих варианта, похоже, работают, чтобы игнорировать новые файлы вblah/
. Добавлено в .gitignore:Не уверен, если это считается или делает меня плохим человеком, но здесь оно идет.
*автоматически*
к корню .файл гитюдногореж *.CheckedIn -рекурсия | %{ копия $_.Полное имя " и$($_.Полное имя) и".Заменить (на"CheckedIn" и" Ну и") -ЕА результат}
Я чувствую себя немного плохо о себе... но это на самом деле работает.
Итак, похоже, что сначала нужно выполнить регистрацию с полностью пустым каталогом (ни старых, ни новых файлов), и все добавленные после этого файлы будут проигнорированы. Если вы удалите старые файлы и добавите новые перед фиксацией, новые файлы будут добавлены в репозиторий, хотя они должны быть проигнорированы.
По крайней мере, это сработало для меня в данной ситуации. Было бы здорово, если бы кто-нибудь смог дать более подробную информацию о том, что происходит.