.gitignore исключить папку с файлами, но включает подкаталог - PullRequest
4 голосов
/ 02 сентября 2011

У меня есть такие папки:

/foo/one.txt
/foo/bar/two.txt
/foo/other/three.txt

Я хочу исключить все в папке / foo /, кроме подпапки / foo / bar /. Как мне это сделать?

С помощью этого .gitignore мне удалось исключить подпапку "other", но файл "one.txt" все еще включен.

/foo/*
!/foo/bar/

Ответы [ 2 ]

0 голосов
/ 03 сентября 2011

Может случиться так, что в то время как .gitignore сейчас работает, вы страдаете от общей проблемы необходимости удаления отслеживаемого файла из индекса, который сейчас находится в gitignore, например. почему-ГИТ-оленья кожа-игнорируемая мой оговоренном-файл

То есть используйте git rm <file>, чтобы удалить / убедиться, что его нет в индексе.

0 голосов
/ 02 сентября 2011

Как сказал Чарльз Бейли в разделе комментариев, ваш код работает:

$ cat .gitignore 
/foo/*
!/foo/bar/

$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   foo/
nothing added to commit but untracked files present (use "git add" to track)
$ git add foo/ -n
add 'foo/bar/two.txt'
$ 
...