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