SonkoDmitry
@SonkoDmitry
Веб разработчик

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

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

*

!.gitignore


Однако требуется для нескольких папок создание этих папок, но они должны быть пустыми, даже без гитигнор внутри
  • Вопрос задан
  • 20557 просмотров
Решения вопроса 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 Автор вопроса
Веб разработчик
Решено, более не актуально.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы