Como hacer que el repositorio ignore algunos ficheros o carpetas

En ocasiones no es conveniente que ciertos archivos o carpetas estén en nuestro repositorio:

  • Ficheros de configuración de entorno (Producción, preproducción, desarrollo…)
  • Ficheros con datos sensibles (Contraseñas de conexión a base de datos…)
  • Ficheros temporales (*.swp, *.swo, ~*, .tmp…)
  • Configuración de editores (.idea, .project, .classpeth…)
  • Archivos generados en tiempo de ejecución (upload/ user-images/…)
  • Archivos compilados/ejecutables…

Podemos ignorar este tipo de archivos mediante el fichero .gitignore, en este podemos especificar archivos y carpetas con rutas absolutas, relativas, con comodines…

Para cada tipo de proyecto (PHP, Java, Android…), suele tener un .gitignore muy parecido ya que se suelen ignorar los mismos archivos. Existen varios servicios que nos ofrecen estos archivos para facilitarnos el trabajo:

Recursivo

La especificación del .gitignore es recursiva. Podemos definir unos ficheros a ignorar en la raíz del proyecto pero especificar otros en una carpeta interior añadiendo otro .gitignore en la misma.

¿Que pasa si hemos añadido ficheros al repositorio que realmente no deberían estarlo?

En ocasiones podemos añadir todos los archivos al repositorio y después darnos cuenta que algunos no deberían estarlo. Podemos arreglarlo con el siguiente comando:

git rm --cached .idea

el git rm sin el –cached eliminaría el archivo del disco también, con esta opción, simplemente lo quita del repositorio, deja de monitorizar sus cambios.

En el siguiente enlace podréis encontrar más información sobre el .gitignore:

https://git-scm.com/book/es/v1/Fundamentos-de-Git-Guardando-cambios-en-el-repositorio

Histórico de commits o confirmaciones

Para ver el histórico de commits tenemos el comando git log, no obstante, en este caso las herramientas e IDEs disponibles, nos ayudaran más en este caso mostrandonos más información y de una manera más legible:

git log

Ejemplo:

$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Mon Mar 17 21:52:11 2008 -0700

    changed the version number

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Sat Mar 15 16:40:33 2008 -0700

    removed unnecessary test code

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Sat Mar 15 10:31:28 2008 -0700

    first commit