Задать вопрос
SonkoDmitry
@SonkoDmitry
Веб разработчик

Игнорирование в Git содержимого папки, но не самой папки?

Есть несколько проектов, периодически кочующие между разработчиками. Фреймворк Yii в основе. Для работы в нем необходимо наличие папки /protected/runtime однако содержимое этой папки значения не играет. Можно в саму папку запихать гитигнор со следующим содержимым:

*

!.gitignore


Однако требуется для нескольких папок создание этих папок, но они должны быть пустыми, даже без гитигнор внутри
  • Вопрос задан
  • 21348 просмотров
Подписаться 8 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
@mithraen
Есть одно решение.
В каталог положить .gitattributes с export-ignore.

А на продакшн выкладывать не git repo целиком, а делать экспорт (через git-archive).

У меня на тестовом стенде это активно используется — по push в репозиторий hook'ом выполняется git-archive + tar x в нужном каталоге.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
mjr27
@mjr27
Мы обычно делаем
.gitignore:
/tmp/

touch tmp/.keepme
git add tmp/.keepme # тут еще вроде какой-то ключ для force указать надо

Или стоит задача оставить папки _вообще_ пустыми?
Ответ написан
corristo
@corristo
git в принципе не работает с пустыми папками
Ответ написан
Комментировать
denver
@denver
.gitignore может быть абсолютно пустым, будут игнориться все файлы кроме .gitignore.

Другого способа добавить папку в git нет и не будет — git не хранит файлы/папки, а хранит диффы файлов, для этого нужны файлы.

Если нужны абсолютно пустые папки — заведите install.sh (либо используйте phing как на взрослом проекте), разумеется .gitignore в корне проекта должен содержать список всех пустых папок. Всё равно найдется что еще сделать — выставить пермишны, залить базу…
Ответ написан
sdevalex
@sdevalex
Нужно сделать примерно так…
# Ignore all logfiles and tempfiles. 
/log/*.log
/tmp
Ответ написан
akral
@akral
Интернет полон ответов.

На официальном сайте в часто задаваемых вопросах поясняется, что Гит работает только с файлами, так что слежка за пустой папкой невозможна.
Ответ написан
SonkoDmitry
@SonkoDmitry Автор вопроса
Веб разработчик
Решено, более не актуально.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽