2011-10-24 4 views
3

J'ai un fichier .gitignore dans quelques répertoires (ex log/.) Avec le contenu suivant:gitignore ne fonctionne pas - à ignorer tout sauf fichier gitignore pour garder un répertoire « vide »

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

Néanmoins, si il y a un fichier dans ce répertoire, git status me le montre en disant qu'il est nouveau mais non traqué.

# 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) 

J'ai trouvé d'autres messages sur stackoverflow suggérant de mettre un commentaire sur la première ligne et d'autres formes ou voodoo au hasard, mais rien n'a fonctionné.

Simplement, je veux un répertoire tmp/ et log/ d'exister dans mon repo, mais vide. Je ne veux pas que quiconque soit harcelé pour ajouter ses fichiers log et tmp à ces répertoires.

Répondre

6

Vous vous attendez à ce que le guillemet double fasse office de commentaire dans votre fichier .gitignore? Vous avez ceci ...

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

... mais c'est ce que vous voulez. Si vous le remplacez simplement par:

* 
!.gitignore 

Cela fonctionnera très bien. Regarder:

$ 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) 
+1

Vous devriez noter qu'une ligne commençant par '#' sert de commentaire dans le fichier '.gitignore'. – Csq

Questions connexes