2016-11-03 4 views
0

Я уже прочитал this question, а также this one, но они, похоже, не работают для меня.gitignore не игнорирует файлы конфигурации

У меня есть git проект со следующей структурой:

myapp/ 
    src/ 
    .gitignore 
    build/ 

Где myapp/.gitignore является:

### gitignore ### 
build/ 

мне теперь нужно добавить верхний уровень config каталога, и хотел бы добавьте в него файлы конфигурации для локальной разработки/тестирования, но не хотите, чтобы они были выполнены. Я только хочу, чтобы каталог («пустой») config зафиксирован. Поэтому я прочитал эти два вопроса выше и попытался выполнить их рекомендации. Теперь мой проект выглядит следующим образом:

myapp/ 
    src/ 
    .gitignore 
    build/ 
    config/ 
     .gitignore 
     test.json 

Где myapp/.gitignore является:

### gitignore ### 
build/ 
!config/.gitignore 

А где config/.gitignore просто:

!.gitignore 

Однако, когда я делаю git add . -n (всухую) Я вижу:

add '.gitignore' 
add 'config/.gitignore' 
add 'config/test.json' 

... так что он собирается попробовать и добавить мой файл конфигурации test.json в любом случае. Я просто хочу, чтобы добавить папку конфигурации, так что команда выведет:

add '.gitignore' 
add 'config/.gitignore' 

Любые идеи, где я собираюсь криво (и почему)?

ответ

2

config/.gitignore должен содержать:

* 
!.gitignore 

То есть, "игнорировать все но.gitignore." Это:

!.gitignore 

Просто говорит, что «не игнорировать .gitignore», но это не говорит, что все остальное должны быть проигнорированы.

(Вы также не должны !config/.gitignore в корневом файле .gitignore.)