Me olvidé de explicar: .gitignore | CourseIt Blog
logo courseit

Me olvidé de explicar: .gitignore

46

Hace un tiempo, en CourseIt grabé un curso sobre git y github. Como muchos saben, la mayoría de los profesores no son perfectos y por lo tanto se equivocan y se olvidan de dar temas en sus cursos. No siendo este mi caso, decidí escribir un blog sobre .gitignore, una herramienta muy importante, que definitivamente no tendría que haber estado en el curso de git y github.

¿Qué es .gitignore?

Es el nombre que le vamos a dar a un archivo dentro de nuestro proyecto. Dicho archivo, va a ser utilizado para excluir otros archivos que nosotros no deseemos que se suban con nuestro commit. Por ejemplo, para los que saben React, seguramente les ha pasado que subieron a github la carpeta de node_modules, y esto es porque no tenían un archivo .gitignore en su proyecto.

¿Cómo se escribe el archivo .gitignore?

Hay un par de caracteres importantes que cumplen una función determinada, la combinación de ellos es lo que nos va a dejar personalizar nuestro gitignore para ser programadores rockstar dev ninja fullstack x10 astrounauta (not). Aunque la realidad es que siempre vas a querer excluir cosas muy puntuales de tu proyecto, como la carpeta node_modules en react, o las variables de ambiente .env.

  • / se utiliza para ignorar archivos o carpetas (tiene que ser una ruta relativa al archivo .gitignore).
  • * se utiliza como un autocompletado general en el nombre de archivos, por ejemplo cuando queremos excluir TODOS los archivos .txt.
  • # es utilizado para insertar comentarios en el archivo.
  • ! es utilizado para excluir ciertas reglas.

Ejemplos

Imaginemos que tenemos la siguiente disposición de archivos:

[proyecto]
  ↳ index.html
  ↳ [styles]
       ↳ style.css
       ↳ style2.css
  ↳ script.js
  ↳ .gitignore

y en nuestro .gitignore tenemos:

# Si queremos ignorar los archivos que terminan en .css hacemos:
*.css

# Si queremos ignorar la carpeta styles
styles

# Si queremos ignorar el archivo styles.css que se encuentra 
# dentro de la carpeta styles

./styles/style.css

# Si queremos ignorar toda la carpeta styles pero el archivo
# style2.css no lo queremos ignorar tenemos otra manera de hacerlo:

styles
# esto ignora la carpeta styles

!./styles/style2.css
#esto vuelve a incluir al archivo style2.css

Ahora bien, supongamos que ya tenemos en un commit un archivo que queremos ignorar. Si queremos ignorar algun archivo en esa circunstancia debemos ejecutar el siguiente comando:

git rm --cached nombre-del-archivo

y volver a crear y subir un commit.

Eso es todo folks! espero que les sirva!