Si eres desarrollador de software, entonces usas Git, ya que es una herramienta indispensable hoy en día para todo developer; y ya que estamos hablando de Git, entonces quizá hayas usado git ignore, y si no, no te preocupes aquí te lo explico.
Cuando uno aplica git a un proyecto, en realidad lo que está haciendo es aplicando git a la carpeta que lo contiene, o lo que es lo mismo, a la carpeta contenedora, y esto incluye todo lo que ella contiene, pero hay archivos y carpetas que no son indispensables tenerlas en nuestro repositorio, es más, no deberíamos tenerlas en nuestro repositorio ya sea porque son autogeneradas o temporales, entonces si las incluímos en nuestros repositorios nos traerán diversos problemas, además muchos de estos archivos van a depender de circunstancias locales como la máquina donde se ejecute etcétera, entonces no tiene caso que la copiemos a todo ordenador donde irá, y si lo hacemos nos dará más de un dolor de cabeza.
Es aquí donde entra a tallar el gitignore que es un archivo sin nombre y con extensión .gitignore y que en cuyo interior especifica qué archivos deben ser ignorados por git, y no se añadirán al repositorio.
Cada tecnología genera este tipo de archivos, por lo que por ejemplo los archivos a ser ignorados en node JS no son los mismos que en .net. En vista de ello aquí te traigo lo que se conoce como una plantilla, la cual podrás utilizar en tus archivos gitignore para todo tipo de proyectos .NET.
En proyectos .NET se recomienda entre otras cosas ignorar las carpetas .vs, bin y obj
Si quieres leer la documentación oficial, aquí se habla de gitignore 😜 en ella puedes aprender a cómo ignorar archivos o carpetas escribiendo expresiones en el archivo .gitignore.
Plantilla .gitignore
Aquí te presento la plantilla que uso siempre que trabajo con proyectos .NET y puedes tu también usarla:
*.suo
*.backup
*.user
*.dbmdl
*.pptx
*.psess
*.orig
*.xml
*.~vsd
*.zip
*.sublime-project
*.sublime-workspace
*.exe
*.avi
*.mp4
*.mov
*.rar
*.mdf
*.ldf
**/nuspec.list
**/packages/
**/.sass-cache/
**/node_modules/
**/bower_components/
*/Performance/*TestResults.txt
**/bin
**/obj
**/*.log.1
**/*.log.*
*.log
*.db
.vs/
Publish/
Entonces resumiendo, el gitignore no es más que un archivo y para proyectos .NET este archivo contiene la plantilla que te presento arriba, y tu proyecto tendía una apariencia similar a esta:
Si tenemos instalado el SDK de .NET podemos crear también un gitignore por default para proyectos .net con el comando:
dotnet new gitignore
Como añadir gitignore despues de haber 'comiteado'
Si ya haz hecho uno o más commits y te diste cuenta que estás añadiendo carpetas que no deberías como obj, bin, .vs, archivos temporales, etcétera, y quieres corregir eso, no bastará con que añadas el gitignore ya que este no quitará lo que ya ha sido añadido previamente al repositorio.
Primero tienes que "limpiar" tu repositorio, para esto debes realizar los siguientes pasos:
- Añadir el archivo .gitignore a tu proyecto
- Borrar del repositorio local git todos los archivos (no los archivos físicos, sino del repositorio git)
- Añadir todo nuevamente al repositorio local (aquí ya se incluye el .gitignore)
- 'Comitear'
- 'Pushear' a la nube
Todo lo mencionado lo realizas ejecutando los siguientes comandos:
git rm -r --cached .
git add .
git commit -m 'clean repository now includes the gitignore file'
git push
Ahora si te fijas, en tu repositorio en la nube ya sea Github o Gitlab no deberían estar los archivos o carpetas definidos en tu archivo .gitignore! 🔥😀
Y bien mis devs! eso es todo por ahora, así que a practicar y compartir esta entrada 😉👌