Comment exclure un fichier seulement du dossier racine dans Git

je suis au courant de l'utilisation du fichier .gitignore pour exclure certains fichiers ajoutés, mais j'ai plusieurs fichiers config.php dans l'arborescence des sources et je dois en exclure un seul, situé dans la racine tandis que les autres restent sous contrôle de révision.

Qu'est-ce que je devrais écrire dans .gitignore pour que cela arrive?

288
demandé sur Richard Fearn 2010-09-03 20:22:20

4 réponses

De la documentation :

si le pattern ne contient pas de slash /, git le traite comme un pattern glob de shell et vérifie une correspondance avec le nom de chemin relatif à l'emplacement du .fichier gitignore (par rapport au niveau supérieur de l'arbre de travail si pas d'un .gitignore fichier).

une barre oblique correspond au début du chemin d'accès. Exemple.*/" ,c" correspond à "chat-fichier.c" mais pas "mozilla-sha1 / sha1.C."

vous devez donc ajouter la ligne suivante à votre racine .gitignore :

/config.php
434
répondu Manoj Govindan 2010-09-03 16:26:26

utiliser /config.php .

69
répondu Richard Fearn 2010-09-03 16:25:47

les versions plus anciennes de git nécessitent que vous définissiez d'abord un motif ignore et immédiatement (sur la ligne suivante) définissiez l'exclusion. [testé sur la version 1.9.3 (Apple Git-50)]

/config.php
!/*/config.php

les versions suivantes ne requièrent que les [testé sur la version 2.2.1]

/config.php
21
répondu kenhowardpdx 2015-01-17 14:44:44

si la solution ci-dessus ne fonctionne pas pour vous, essayez ceci:

#1.1 Do NOT ignore file pattern in  any subdirectory
!*/config.php
#1.2 ...only ignore it in the current directory
/config.php

##########################

# 2.1 Ignore file pattern everywhere
config.php
# 2.2 ...but NOT in the current directory
!/config.php
13
répondu drugan 2016-09-15 14:05:51