No versiones archivos ajenos al proyecto
El título de esta entrada suena realmente lógico y no merece profundizar más en él, pero ¿Cómo puedes hacerlo? El problema es que en ocasiones, en la carpeta del proyecto, guardas archivos de configuración que si bien no son propios del proyecto, sí que son necesarios, y resulta cómodo tenerlos en dicha ubicación. Desde mi punto de vista, las configuraciones de los distintos IDEs son el caso más común de esto que te comento.
Refiriéndonos al gestor de versiones Git, lo habitual es que el proyecto disponga de un archivo específico, nombrado .gitignore, donde se indica qué modificaciones deben ser obviadas en la construción de las distintas versiones. Habitualmente están incluidas en esta declaración las bibliotecas de código de terceros, que se suelen instalar con un gestor de dependencias, y los archivos resultado de una compilación, pero ¿Como puedes a hacer un ejercicio por adelantar que IDEs se usarán, como se nombrarán los documentos que contengan la declaración de sus ajustes y dónde se guardarán? Esta responsabilidad parece que, más bien, debe recaer en cada desarrollador.
Git te ofrece la posibilidad de configurar un documento del tipo .gitignore con caracter global, llamémosle .gitignore_global, de modo que puedes indicarle a Git que, en todos tus proyectos, ignore tus archivos de configuración personales. Si quieres saber que archivo está usando Git como .gitignore_global ejecuta el siguiente comando:
$ git config --global core.excludesfile
Para configurar otro archivo distinto, sólo tienes usar la sentencia anterior añadiendo al final el archivo que quieres usar.
$ git config --global core.excludesfile /home/metroSetenta/.gitignore_global
El contenido del archivo es sencillo, se trata de patrones. Aquí tienes más información para hacerlos tú mismo, pero puedes tomar de base las propuestas en gitignore.io.
Vamos un poco más allá. Lo cierto es que si trabajas en proyectos muy distintos, en ocasiones no usas las mismas reglas o, incluso, es posible que quieras tener reglas para ignorar archivos que sean contradictorias entre dos o más de tus proyectos. Para esto, también dispones de la opción de configurar dichas reglas en un documento específico para cada proyecto, pero que no será agregado a las siguietes versiones de dicho proyecto . Dentro de la carpeta del proyecto en el que deseas configurar estas reglas específicas navega a .git/info/exclude, e indícalas ahí.
“Se responsable con los proyectos en los que trabajas y no versiones archivos ajenos al proyecto, pídele al gestor de versiones que los ignore.”