viernes, 4 de octubre de 2019

Git para matemáticos 3: Comándos básicos y el día a día.

Esta es la primera de una serie de entradas donde hablo de una herramienta que aprendí a usar hace relativamente poco: git.
  1. Introducción y instalación y configuración inicial.
  2. Repositorios locales y web.
  3. Comandos básicos y el día-a-día.
  4. Submódulos (pendiente).
  5. Ramas (pendiente).
  6. Git y Overleaf (pendiente).
  7. Disclaimer: Esto no pretende ser un tutorial completo de cómo usar git y no solo eso, es muy probable que los conceptos no sean exactamente como los platico en estas entradas. Yo no soy un experto en git y más bien me enfocaré en cómo lo uso en la práctica. Si crees que algo de lo que digo puede mejorar, déjalo en un comentario. Por otro lado, la mayoría de lo que diga llevará referencias, pero si algo no queda claro, por favor, házmelo saber.
Me enfocaré en los usos prácticos para alguien que jamás ha usado git. Si tú ya lo usas con frecuencia pero te enfrentas a algunos de mis problemas, las referencias en los enlaces deberían ayudarte.

Comandos básicos de git

En esta entrada vamos ahora sí a meternos de lleno a git. Al final de esta entrada deberías de ser capaz de dejar dropbox y usar git como tu controlador de versiones de todos los días. Incluso, si te quitas el miedo, hasta podrías empezar a colaborar con otros. Después planeo escribir con detalle esta parte, pero con los conocimientos adquiridos hoy, debería bastan para los arriesgados.

A continuación voy a explorar los comandos básicos de git: add, commit, pull y push. Es importante mencionar que no pretendo entrar en detalles acerca de estos comandos, pues, como dije antes, me interesa que los lectores de estas entradas se animen a usar git más que a entenderlo a profundidad. De cualquier manera, para detalles sugiero consultar la documentación.

El contexto para el uso de estos comandos es el siguiente. Supón que ya tienes un repositorio llamado articulo que ha sido vinculado a un repositorio web, como se explicó en otra entrada. Estás dispuesto a comenzar a trabajar, lo cual incluye agregar, modificar o borrar algunos archivos. Además, te gustaría tener tu trabajo "respaldado" en el servidor web al final del día, digamos, por ejemplo, por si quieres llegar a tu casa a seguir trabajando. Dropbox hace esto que menciono de manera automática, así que si quieres pensar esta entrada como la manera de darle la vuelta a Dropbox, está perfectamente bien. Por ahora dejaremos la posibilidad de que colaboradores fuera de esta entrada. En un futuro se discutirá cómo hacer esto.

Para hacer esto explicaré en palabras muy mundanas lo que hacen cada uno de los comandos.
  • add: Le dice a git que comience a rastrear un archivo (puede ser uno nuevo en el proyecto o uno modificado). Esencialmente lo que hace es decir "hey git, esto se modificó".
  • commit: Guarda el status actual del repositorio. Una manera de pensarlo es que "le toma una foto" a la versión actual de los archivos. Es probablemente el comando más importante de git.
  • pull: Descarga la copia más reciente del servidor web y la "mezcla" con los archivos del repositorio local.
  • push: Toma la copia del repositorio local, y la sube al servidor web. Esencialmente, funciona como pull pero en la otra dirección.
Habiendo "entendido" estos comandos, les voy a mostrar cómo me funciona a mí un día a día en git en un repositorio al que solamente yo tengo acceso (probablemente en más de una computadora), pero en el cual no va a suceder que dos personas modifiquen los archivos al mismo tiempo.
  1. Descarga la última versión del repositorio en el servidor web:
    $ git pull
  2. Modifica los archivos, trabaja, guarda los archivos cuantas veces sean necesarios. Borra y renomba archivos (ver nota abajo). En fin, trabaja.
  3. Cada que un archivo llegue a su versión final de la sesión de trabajo, agreǵalo.
    $ git add NombreDelArchivo
  4. Cuando hayas terminado de trabajar en este proyecto, o que vayas a tomar una pausa o lo que sea. Haz un commit, es decir, guarda una copia del status el proyecto.
    $ git add * #esto es por si se te olvidó agregar algún archivo
    $ git commit -m "Sesión de trabajo muy dura, se hizo bla bla bla"
  5. Finalmente, sube todo al servidor web, para que se sincronice.
    $ git push
Algunas notas importantes a tomar en cuenta:
  • Cuando renombres o borres archivos, hay que hacerlo con git, para evitar dolores de cabeza.
    $ git rm ArchivoABorrar
    $ git mv ArchivoOriginal ArchivoRenombradoOMovido
    Si se te olvida hacerlo con git, cuando intentes hacer commit va a dar lata, pero el mensaje de error de git usualmente es amable te dice cómo salir del problema.
  • No olvides empujar todo al servidor. Me ha pasado que llega el viernes y no lo hago y entonces intento trabajar el fin de semana y en el servidor solo está la copia vieja. No es tan grave, git te ofrece la posibilidad de hacer eso y hacer que las cosas luego se mezclen bien, pero es mejor evitar dolores de cabeza.
Con esto ya deberías animarte a mandar a volar Dropbox para escribir tus cosas y animarte a usar git.

No hay comentarios.:

Publicar un comentario