Почему.gitignore не включает файл с префиксом!
Мой файл.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 ответа
Как уже упоминалось в gitignore
справочная страница:
gitignore
file указывает намеренно не отслеживаемые файлы, которые git должен игнорировать
Если glucosia.xcodeproj/project.pbxproj
(как предложил Alan Haggai Alavi в комментариях) уже отслежено, вам нужно удалить его из кэша, и тогда вступит в силу директива gitingore.
git rm --cached glucosia.xcodeproj/project.pbxproj
Если файл уже был зафиксирован, см. Этот SO ответ (git commit --amend
удалить его из последнего коммита)
У меня была та же проблема, но другое решение. Если вы игнорируете каталог, но не файл внутри него, он не будет работать. Вы должны игнорировать файлы каталога.
Это не работает:
conf/
!conf/config.json.orig
Это будет работать:
conf/*
!conf/config.json.orig