Почему .gitignore не включает файл с префиксом! - PullRequest
7 голосов
/ 04 февраля 2010

Мой файл .gitignore выглядит следующим образом:

build/
glucosia.xcodeproj/
!glucosia.xcodeproj/project.pbxproj
core-plot/framework/build
core-plot/framework/CorePlot-CocoaTouch.xcodeproj/
!core-plot/framework/CorePlot-CocoaTouch.xcodeproj/project.pbxproj
.DS_Store
Classes/.DS_Store

Странно, но glucosia.xcodeproj/project.pbxproj не игнорируется, как я и ожидал.

Но, core-plot/framework/CorePlot-CocoaTouch.xcodeproj/project.pbxproj все еще игнорируется.

Есть идеи?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 04 февраля 2010

Как уже упоминалось в справочной странице gitignore :

A gitignore, файл определяет намеренно не отслеживаемые файлы, которые git должен игнорировать

Если glucosia.xcodeproj/project.pbxproj (как предложено Alan в комментариях) уже отслежено, вам необходимо удалить его из кэша, и тогда вступит в силу директива gitingore.

git rm --cached glucosia.xcodeproj/project.pbxproj

Если файл уже был зафиксирован, см. SO ответ (git commit --amend, чтобы удалить его из последней фиксации)

5 голосов
/ 12 февраля 2013

У меня была та же проблема, но другое решение. Если вы игнорируете каталог, но не файл внутри него, он не будет работать. Вы должны игнорировать файлы каталога .

Это не работает:

conf/
!conf/config.json.orig

Это будет работать:

conf/*
!conf/config.json.orig
...