2010-10-12 42 views
11

J'ai sorti mes cheveux de recherche sur le net et divers docs sur les fichiers .gitignore. Je suis un peu n00b avec Unix/Terminal (en utilisant Mac OS X) et je ne peux pas pour la vie de moi comprendre comment ignorer le contenu d'un dossier (tout type de contenu, que ce soit un fichier ou un autre dossier, peu importe à quel point c'est profond).gitignore et comment ignorer un nom de répertoire commun et son contenu

Je travaille sur un projet qui génère des fichiers image dans une structure de fichiers cohérente, sauf que nous obtenons des conflits de fusion concernant les autorisations utilisateur. Je voudrais ignorer les dossiers qui contiennent les images générées afin que nous puissions éviter d'avoir à ajuster les permissions par tirage. Je n'arrive pas à faire fonctionner le fichier .gitignore, j'ai donc besoin de trouver le bon modèle pour la correspondance du contenu du dossier. Je veux qu'il soit assez général en ce qu'il peut facilement englober le site entier (donc si un dossier contient un nom de dossier particulier, il ignorera son contenu).

J'ai essayé:

# Images 
resample/ 
resize/ 
min/ 

Et ...

# Images 
resample/* 
resize/* 
min/* 

Et ...

# Images 
*/resample/* 
*/resize/* 
*/min/* 

Et bien d'autres combinaisons avec des résultats peu satisfaisants. Je n'ai jamais eu le modèle foldername/**/* pour travailler. Toute aide concernant ce problème serait très appréciée!

+1

Le premier exemple devrait fonctionner. Mais il est sensible à la casse, êtes-vous sûr que les noms de dossiers sont tous en minuscules? –

+0

Oui, tout est en minuscules. –

Répondre

23

Merci aux affiches précédentes pour leur aide. Après quelques approfondissements, j'ai découvert comment appliquer correctement les nouvelles règles .gitignore. Le problème était que précédemment les images étaient suivis alors je devais supprimer la référence aux fichiers dans le fichier .git/index, comme si ...

// Remove all tracked files from the index 
// (doesn't remove the file, just the reference) 
git rm -r --cached . 

// Add all the files again 
// (files and folders specified by .gitignore aren't added to the index) 
git add . 

// Commit to save changes 
git commit -am "gitignore update" 
+0

Merci d'avoir ajouté ceci. Je suis sur le point de commencer à utiliser git moi-même, c'est tout besoin de savoir des choses. – kevpie

+2

Je pense que vous n'avez pas besoin de '-a' dans vos drapeaux de validation si vous avez déjà ajouté les fichiers. – Noich

8

Vous cherchez gitignore

Un fichier gitignore spécifie intentionnellement des fichiers trassez que git doit ignorer. Notez que tous les fichiers gitignore ne concernent réellement que les fichiers qui ne sont pas déjà suivis par git;

Si votre fichier ou votre dossier se trouve dans le référentiel, il doit être supprimé du référentiel pour être ignoré.

Faites également attention à la casse dans vos motifs.

Votre première liste devrait fonctionner en supposant que ces dossiers ne sont pas actuellement sous contrôle de version.

# Images 
resample/ 
resize/ 
min/ 
+0

Merci pour cela. Après un peu plus de recherche et d'expérimentation, j'ai découvert quelques choses intéressantes ... –