Git игнорировать все, кроме некоторых подкаталогов - PullRequest
5 голосов
/ 19 мая 2011

Мне нужно контролировать только подкаталоги "debian" в моем дереве:

pkg/.git
pkg/.gitignore
pkg/package1/package1-2.2.1/debian
pkg/package2/package2-1.0/debian

Я пробовал этот тип .gitignore, но он не будет работать:

*
!.gitignore
!*/*/debian

Когдазапустите

git add package1 / package1-2.2.1 / debian

git ответит: Следующие пути игнорируются одним из ваших файлов .gitignore:*

Что вполне логично.Любая помощь будет оценена!

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Вы все еще можете добавить его с помощью:

git add -f package1/package1-2.2.1/debian

Кстати, вы, вероятно, не хотите игнорировать ваш файл .gitignore, так как вы захотите узнать, когда вам нужно зафиксировать любые изменения, которые вы в него внесли. Если вы не хотите, чтобы правила игнорирования были зафиксированы в репозитории, вы должны использовать .git/info/exclude.

0 голосов
/ 19 мая 2011

Как указано в документации gitignore о префиксе !:

An optional prefix ! which negates the pattern; any matching file excluded by a previous pattern will become included again. If a negated pattern matches, this will override lower precedence patterns sources.

Возможно, это означает, что вы не можете использовать два последовательных !.Попробуйте удалить !.gitignore на некоторое время, а затем выполните git add.

...