Contenidos
Ignorando archivos con .gitignore (MAC OS X - 10.14.6)
   Jul 13, 2020     2 min lectura

Si estás trabajando con github y no quieres que al subir tu proyecto se importen también configuraciones propias del IDE (entre otras cosas) tienes que tener en cuenta este archivo. Puedes definir un archivo .gitignore como global o local (o ambos).

En caso de trabajar constantemente con github y realizar varios proyectos, mi consejo es generar el .gitignore global también, de forma que no tengas que configurar lo mismo, una y otra vez, para cada proyecto local. (Ten en cuenta que el fichero local se crea siempre y en él puedes añadir particularidades de ese proyecto en cuestión que quieras ignorar).

Además, hay algunos ficheros que se generan automáticamente por el SO y que se crean e importan por defecto, como .DS_STORE en MAC OS X, por ejemplo. Este fichero es un muy buen candidato para ser ignorado globalmente.

¿Cómo generar el .gitignore global?

Abre tu terminal y sitúate en tu directorio ‘home’ con:

cd ~/

A continuación crea el fichero .gitignore (global) con:

touch .gitignore

Y por último, configúralo como global para github con:

git config --global core.excludesfile ~/.gitignore

¿Cómo encontrar el .gitignore local?

Si ya has conectado tu repositorio y tu proyecto con

git init

el fichero ya se habrá creado en tu directorio local del proyecto, así que dirígete al root del mismo y muestra los archivos ocultos con “cmd + shift + . “. Una vez te los muestre, ahí mismo encontrarás el fichero .gitignore y con un editor de texto lo podrás modificar.

Configuración del fichero .gitignore (local y global)

Estos ficheros tienen una configuración particular. Dependiendo de lo que quieras que ignore y cómo quieras que lo ignore. Debemos seguir los siguientes patrones:

  • Linea en blanco: no indica ningún fichero, así que se puede usar para que el fichero sea más legible.
  • Si pones el nombre del fichero sin ningún símbolo ni nada, git lo ignorará en todos los directorios.
  • \#: indica comentario.
  • Los espacios al final son ignorados a menos que se indiquen con una barra invertida: **\**
  • !: indica negación del patrón. Cualquier fichero que lo incluya que haya sigo ignorado previamente, dejará de serlo, a menos que su directorio padre se haya indicado previamente que debe ser ignorado.
  • Si el fichero a ignorar comienza por: **#**, **!** , es necesario indicarlo con una barra invertida **\**
  • /: Se usa para separar niveles de directorios. Ej. *logs**/**debug.log*. A excepción de si lo encuentras al final. En ese caso, se usa para indicar que el patrón es un directorio. Ese directorio y todo lo que haya dentro de él se ignorará.
  • *: para indicar cualquier carácter excepto **/**.
  • ?: para indicar cualquier carácter (uno sólo) excepto **/**.
  • [a-zA-Z]: para indicar cualquier carácter dentro de ese rango (uno sólo).
  • **/: Ignora todos los directorios o ficheros que coincidan con el patrón. Ej: ***/foo*. Ignorará cualquier fichero o directorio *foo* donde sea que se encuentre.
  • /**: Ignora todo lo que hay dentro. Ej: *abc/**.* Ignorará todo lo que haya dentro del directorio abc.
  • /**/: Debe coincidir con 0 ó más directorios. Ej: *a/**/b* sería: “a/b”, “a/x/b”, “a/x/y/b”, etc.

Más información sobre el fichero gitignore

Ejemplo de un fichero .gitignore:

.DS_Store
Thumbs.db
.idea/
.settings
*.iml
*.ipr