Ответ 1
Хорошо, я нашел решение. Просто создайте новое репо в подкаталогах, и родительское репо проигнорирует их.
У меня есть проект веб-сайта, который содержит более 50 000 неважных файлов (для разработки) в некоторых каталогах.
/website.com/files/1.txt
/website.com/files/2.txt
/website.com/files/3.txt
/website.com/files/etc.txt
Материалы в/файлы уже находятся в репо. Я хочу удалить все файлы в/файлы на моей локальной копии, но я хочу, чтобы git игнорировал его, чтобы он не удалял их, когда я делаю попытку на веб-сервере.
Любые идеи?
Хорошо, я нашел решение. Просто создайте новое репо в подкаталогах, и родительское репо проигнорирует их.
Игнорирование целой директории не работает. Я должен был сделать это:
for i in `git status | grep deleted | awk '{print $3}'`; do git update-index --assume-unchanged $i; done
Приведенный ниже код работает как с удаленными, так и с измененными файлами, чтобы игнорировать его, когда вы выполняете статус git.
git update-index --assume-unchanged dir-im-removing/
или конкретный файл
git update-index --assume-unchanged config/database.yml
Игнорировать измененные (но не зафиксированные) файлы в git?
Остерегайтесь: предложение выше для удаленных файлов, когда вы выполняете "git commit -am", включает в себя удаленный файл!
Решение, которое будет работать для меня, это вместо того, чтобы удалять файл, просто сделайте его пустым. Это то, что я использовал для отключения файла .htaccess.
Создание суб-репо - это одно из решений, но вы должны сделать этот под-репо submodule.
Таким образом:
git submodule update
" (то есть без заполнения содержимого files
git submodule update
после git submodule init
будет достаточно, чтобы вернуть правильную версию содержимого files
.