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