2010-09-03 17 views
251

Soy consciente de usar el archivo .gitignore para excluir algunos archivos que se agregan, pero tengo varios archivos config.php en el árbol de fuentes y necesito excluir solo uno, ubicado en la raíz mientras que otros mantener bajo control de revisiónCómo excluir archivos solo de la carpeta raíz en Git

¿Qué debo escribir en .gitignore para que esto suceda?

Respuesta

382

Desde el documentation:

Si el patrón no contiene una barra /, Git lo trata como un patrón global cáscara y comprueba si hay un partido contra el nombre de ruta relativa a la ubicación del archivo .gitignore (relativo al nivel superior del árbol de trabajo si no es de un archivo .gitignore).

Una barra diagonal inicial coincide con el comienzo de la ruta de acceso. Por ejemplo, "/*.c" coincide con "cat-file.c" pero no con "mozilla-sha1/sha1.c".

lo que debería agregar la siguiente línea a la raíz de su .gitignore:

/config.php 
+1

Gracias! Lo intenté de esta manera, pero por alguna razón no funcionó. Probablemente mal escrito en algún lugar =) –

+1

¿Qué sucede si no es un archivo, sino una carpeta, y quiero ignorar esa carpeta en la raíz del repositorio, sus archivos y todas las subcarpetas descendientes y sus archivos? '/ folder /'? – CoDEmanX

+3

Cualquiera '/ carpeta /' o '/ carpeta' funcionaría, pero al agregar la barra en los extremos limita la coincidencia a carpetas solamente. Si tuviera un archivo llamado 'foo' en el directorio raíz, '/ foo /' no lo ignoraría, pero '/ foo' lo haría. – tehDorf

64

Use /config.php.

8

Si la solución anterior no funciona para usted, intente esto:

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

antiguas versiones de Git requiere primero define un patrón de ignorar e inmediatamente (en la siguiente línea) define la exclusión. [Probado en la versión 1.9.3 (Apple Git-50)]

versiones
/config.php 
!/*/config.php 

más tarde, sólo requieren la siguiente [probado en la versión 2.2.1]

/config.php 
Cuestiones relacionadas