2010-09-23 8 views
1

Lors de l'utilisation d'entrées de sous-répertoire dans .gitignore, "git clean -X" ne nettoie pas le sous-répertoire ignoré.git clean -X comportement lorsque .gitignore a des entrées de sous-répertoire

$ git init test 
Initialized empty Git repository in /home/jpgariep/git/test/.git/ 
$ cd test/ 
$ mkdir -p a/b/c 
$ touch a/b/c/test 
$ echo '/a/b/' > .gitignore 
$ git add .gitignore 
$ git commit -m "Added .gitignore." 
[master (root-commit) 94e2825] Added .gitignore. 
1 files changed, 1 insertions(+), 0 deletions(-) 
create mode 100644 .gitignore 
$ git status 
# On branch master 
nothing to commit (working directory clean) 
$ git clean -X -d -f 
$ ls a 
b 

Pourquoi est-il encore b?

Git: 1.7.2.3

NOTE: Cela a également été affiché sur la liste de diffusion git il y a 2 mois sans réponse.

+0

Je manque quelque chose ici ... Vous demandez git d'ignorer/a/b et vous surpirised il ignore/a/b? Mon interprétation est-elle correcte ou suis-je en train de manquer une subtile? –

+0

L'ignorant fonctionne Ok. Le problème est avec la commande "git clean -X". L'option -X avec git clean est supposée nettoyer les fichiers qui sont ignorés. "git clean -X -d -f" devrait agir comme un "make clean". – gawi

+0

'git clean -x -d -f' fonctionne très bien. Mais je comprends que vous voulez garder le répertoire qui a été fait, mais pas commis. Cela ressemble à un bug. une solution de contournement consiste à tout commettre sur une branche locale et utiliser un petit x pour nettoyer –

Répondre