За последние 24 часа нас посетили 23768 программистов и 1549 роботов. Сейчас ищут 1019 программистов ...

gitignore файлы но не каталоги

Тема в разделе "Прочее", создана пользователем Ganzal, 4 мар 2013.

  1. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    господа, кто может дать быстрый совет?
    нафармил кучу каталогов с подкаталогами и файлами на последнем уровне каждой ветки. как GIT'у объяснить игнорировать файлы но не структуру каталогов? мне не лень добавить по строке на каждый каталог, но может кто знает готовый паттерн?

    заранее спасибо за консультацию.
     
  2. d1gi

    d1gi Активный пользователь

    С нами с:
    24 май 2009
    Сообщения:
    326
    Симпатии:
    0
    /var/cache/*
    !*.gitkeep

    в этом случае игноритуется всё содержимое /var/cache/*, но если где-то там есть *.gitkeep то он остаётся.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Ganzal, не уверен, что правильно понял твою цель, но для примера вот такая структура
    Код (Text):
    1.  
    2. /cache
    3.     /a
    4.         /1
    5.         /2
    6.             some.txt
    7.             some.txt~
    8.         /3
    9.     /b
    10.         foo.txt
    11.         /1
    12.         /2
    13.     /c
    14.     readme.txt
    15.     readme.txt~
    хочу игнорировать только файлы на третьем (последнем) уровне структуры
    .gitignore
    Код (Text):
    1.  
    2. *~
    3. /cache/*/*/*
    git add *
    добавит только /cache/readme.txt и /cache/b/foo.txt но не /cache/a/2/some.txt

    Добавлено спустя 8 минут 10 секунд:
    папки последнего уровня (какбы без файлов) вообще не попадут в репу. чтобы они присутствовали надо добавить правило как d1gi подсказал:
    Код (Text):
    1. *~
    2. /cache/*/*/*
    3. !*.gitkeep
    и затем в папки последнего уровня насовать эти .gitkeep. тогда папки появятся в репе, но в них будет только .gitkeep.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    d1gi, artoodetoo, спасибо огромное, работает!

    зы. пока пытался найти решение, ткнул с виду простое правило - /*.* - ну типа в файлах-то в имени точка есть, а у каталогов - нет. git стал игнорировать почти всё, включая, естественно, сами каталоги))), но не *.php и *.xml. такая вот мистика.