Git игнорировать удаленные файлы

У меня есть проект веб-сайта, который содержит более 50 000 неважных файлов (для разработки) в некоторых каталогах.

/website.com/files/1.txt
/website.com/files/2.txt
/website.com/files/3.txt
/website.com/files/etc.txt

Материалы в/файлы уже находятся в репо. Я хочу удалить все файлы в/файлы на моей локальной копии, но я хочу, чтобы git игнорировал его, чтобы он не удалял их, когда я делаю попытку на веб-сервере.

Любые идеи?

Ответ 1

Хорошо, я нашел решение. Просто создайте новое репо в подкаталогах, и родительское репо проигнорирует их.

Ответ 2

Игнорирование целой директории не работает. Я должен был сделать это:

for i in `git status | grep deleted | awk '{print $3}'`; do git update-index --assume-unchanged $i; done

Ответ 3

Приведенный ниже код работает как с удаленными, так и с измененными файлами, чтобы игнорировать его, когда вы выполняете статус git.

 git update-index --assume-unchanged dir-im-removing/

или конкретный файл

git update-index --assume-unchanged config/database.yml

Игнорировать измененные (но не зафиксированные) файлы в git?

Остерегайтесь: предложение выше для удаленных файлов, когда вы выполняете "git commit -am", включает в себя удаленный файл!

Решение, которое будет работать для меня, это вместо того, чтобы удалять файл, просто сделайте его пустым. Это то, что я использовал для отключения файла .htaccess.

Ответ 4

Создание суб-репо - это одно из решений, но вы должны сделать этот под-репо submodule.

Таким образом:

  • вы сохраняете связь между вашим обычным контентом и содержимым "файлов"
  • Если контент "файлов" эволюционирует один день, вы можете зарегистрировать его эволюцию в основном репо
  • вы можете проверить свое основное репо без "git submodule update" (то есть без заполнения содержимого files
  • при развертывании, git submodule update после git submodule init будет достаточно, чтобы вернуть правильную версию содержимого files.