gitignore не работает - хотите игнорировать все, кроме файла gitignore, чтобы сохранить «пустой» каталог - PullRequest
3 голосов
/ 24 октября 2011

У меня есть файл .gitignore в нескольких каталогах (например, log/) со следующим содержимым:

*            " Ignore everything in this directory
!.gitignore  " Except this file

Тем не менее, если в этом каталоге есть файл, git status показывает его мне, говоря, что он новый, но не отслежен.

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       log/blah.log
nothing added to commit but untracked files present (use "git add" to track)

Я нашел другие посты в stackoverflow, предлагающие поместить комментарий в первую строку и различные другие формы или случайное вуду, но ничего не помогло.

Проще говоря, я хочу, чтобы каталоги tmp/ и log/ существовали в моем репо, но были пусты Я не хочу, чтобы кого-то беспокоили, чтобы они добавляли свои журналы и файлы tmp в эти каталоги.

1 Ответ

6 голосов
/ 24 октября 2011

Ожидаете ли вы, что двойная кавычка будет действовать как комментарий в вашем .gitignore файл? Вы получили это ...

*            " Ignore everything in this directory
!.gitignore  " Except this file

... но это делает то, что вы хотите. Если вы замените его просто:

*
!.gitignore

Это будет работать просто отлично. Смотреть:

$ ls -A
dir1 .git
$ ls -A dir1
.gitignore
$ cat dir1/.gitignore
*
!.gitignore
$ git status
# On branch master
nothing to commit (working directory clean)
$ touch dir1/file{1,2,3}
$ ls -A dir1
file1 file2 file3 .gitignore
$ git status
# On branch master
nothing to commit (working directory clean)
...