2012-04-23 37 views
30

Existe una colección de archivos útiles .gitignore en https://github.com/github/gitignore. Cada archivo de ignorar tiene una extensión .gitignore, p. Java.gitignore, vim.gitignore. Cuando pongo estos archivos directamente en un archivo de trabajo, no funcionan.Práctica recomendada para usar varios archivos .gitignore

¿Es necesario crear un único archivo .gitignore y fusionar los archivos constituyentes en él?

En consecuencia, cuando se utiliza un archivo --global.gitignore, parece que la configuración apunta a un solo archivo. Si, por ejemplo, quiero aplicar todos los archivos .gitignore en un directorio Global /, ¿debería fusionarlos manualmente en un único archivo? Si es así, es un trabajo extra mantener este archivo fusionado actualizado con la colección "oficial".

Reiterando, reconozco que podemos usar diferentes archivos .gitignore en diferentes directorios, pero no es lo que quiero. Quiero aplicar múltiples archivos .gitignore en un solo directorio.

Respuesta

30

Para aclarar: a proyectos gitignore archivo se llama .gitignore


Antecedentes:

Un .gitignore se refiere al directorio que está en total, que es el nivel superior o descendiente de un directorio con una .git repository, es decir, un directorio ".git /".

No puede haber múltiples archivos en cualquier .gitignore subdirectorios, pero lo mejor es tener una .gitignore en una raíz dada proyectos y tienen que hagan referencia a archivo de subdirectorios, según sea necesario, por ejemplo, images/annual/recent De lo contrario, será difícil saber qué archivo .gitignore buscar para encontrar algo que se ignore. ¡Dado que puedes usar patrones como nombres de archivo que podrían ser bastante complicados!

También recomiendan evitar mediante un archivo mundial .gitignore que se aplica a todos los proyectos en su máquina, aunque es posible mantener una plantilla de alrededor de usar con nuevos proyectos. La principal consideración aquí es que su .gitignore será diferente de otros desarrolladores (que pueden existir o no) y el resultado es indeterminado. Un ejemplo de una excepción a esto es usar un archivo global .gitignore para archivos IDE que no quiero en ningún proyecto que abro en mi máquina, así que utilizo un .gitigore global con una entrada para .idea/files (rubyMine).


La intención de las plantillas que usted ve mencionado es que normalmente se escribe el código de un determinado archivo en un idioma específico. Dado esto, una plantilla que se basa en el lenguaje es frecuentemente suficiente.

Si hay múltiples idiomas en la base de código, a continuación, utiliza tendrá que combinar 's múltiples .gitignore para esos idiomas, que se pueden hacer en una multitud de formas, tales como:

cat .gitignore1 .gitignore2 > .gitignore # if .gitignore doesn't exist yet 
cat .gitignore1 >> .gitignore # Add to it if it already exists 
paste .gitignore1 .gitignore # Add to it if it already exists 

Caliente (ish) fuera de la prensa (verano de 2014):

Gitignorer es una sencilla utilidad que ayuda en la creación de archivos .gitignore. Extrae plantillas específicas (especificadas) .gitignore, con archivos comunes para excluir, desde github.com/github/gitignore, las mezcla juntas y las guarda en .gitignore en el directorio actual.

Ejemplo de uso:

gitignorer create c java python 

Gitignorer está actualmente disponible en AUR encima en https://aur.archlinux.org/packages/gitignorer/ y en GitHub en https://github.com/zachlatta/gitignorer


+10

Así que, esencialmente ... sí, usted tendrá que copiar manualmente/pegar en un archivo (a menos que malinterprete esta respuesta). –

+2

Estoy de acuerdo, pero siento la necesidad de especificar algunos términos. Estamos hablando de la diferencia entre un .gitignore GLOBAL (depósito cruzado) y un .gitignore de raíz del proyecto (se aplica a todos los archivos en UN depósito). Un enfoque de raíz de proyecto también me ha funcionado, copiando entradas de un proyecto a otro según sea necesario. Un .gitignore global parece tener un gran potencial para causar confusión. – moodboom

+0

agregó un poco más de información para ayudar a la claridad. –

Cuestiones relacionadas