Aprende sobre algunos de los comandos de terminal que una desarrolladora front end utiliza para manejar git y el sistema operativo MAC. Puedes encontrar la versión de esta historia en inglés aquí.
Suena intro del Príncipe de Bel Air:
Un mensaje de Slack apareció. “¿Puedes verificar qué es lo que esta causando este error? Tengo una reunión importante con un cliente a las 3 pm. Quisiera poder mostrar la capacidad del programa”, leía.
Busqué mi listado de música “Escribiendo furiosamente”. Me hice una dona en el pelo. Tomé un poco de café. Accedí “Spotlight” presionando el comando [command + barra espaciadora ] y busqué el terminal. Así accedí a las líneas de comando del sistema operativo Mac ya que mi teclado esta configurado con el alfabeto y comandos en inglés.
Comandos en el terminal Mac
“¿Dónde estoy?” Sonó filosófico cuando lo pensé. En realidad, lo que necesito es entrar el comando [ pwd ] para imprimir en el terminal Mac mi localización en el directorio. [ pwd ] es como un mapa de Google para archivos. Me enseña en cuál directorio estoy.
“!Excelente! Estoy en el directorio que necesito. Pero, no recuerdo el directorio al que quiero navegar,” me dije. Aunque en seguida comenté: “[ ls ] viene como anillo al dedo.”
[ ls ] muestra el listado del contenido dentro del directorio actual.
Mis pensamientos continuaron: “Ya recuerdo en cuál directorio copié el proyecto. Ahora necesito cambiar de directorio hasta llegar a la copia.”
Comencé a cambiar de directorio. Entrando [ cd ] seguido por el nombre del directorio subsiguiente al que quiero navegar. Separando cada nombre con una barra [ / ].
Hasta que me encontré en el directorio src (directorio fuente). “¡Espera un momento!, ¿el paquete json (package.json) estará dentro del directorio src? ¡Déjame [ ls ] esta cosa!,” continué.
“Nope, no hay forma de que pueda ejecutar el programa desde este directorio,” me dije. Esta vez, en voz alta.
“Shhhhhhhhhh, ¡estoy en una reunión!” dijo Ramona, mi colega.
Regresando al pensamiento: “Necesito subir un nivel en el directorio, pero ¿cómo?”
Para eso es que se utilizan los dos puntitos: [ cd .. ]. Dos puntos luego de cd significa subir un nivel en el directorio.
Pensé: “Antes de activar el app, déjame aprovechar este momento para abrir el editor de código Visual Studio Code”. Así que ejecuté el comando [ code . ]
“Vale, ahora activemos la aplicación,” pensé. Y con [ npm start ] se inicializó la aplicación.
Momento de comandos git
“Antes de hacer algo, necesito asegurarme de que tengo una copia local de la versión mas actualizada del programa que esta en desarrollo,” me dije.
Así que es momento de: “La rutina git”.
“Pero antes ☝️. Déjame abrir una nueva pantalla,” me dije.
El comando [ command + t ] abre una nueva en el terminal Mac. Así la aplicación sigue corriendo en la pantalla actual.
A continuación, detallo en qué consisten los Casi cuatro pasos de la rutina git. Asumo que tienes conocimiento básico en git. ¡No te preocupes si no sabes! Te comparto una breve introducción.
Casi cuatro pasos de la rutina de comandos git
Primero, verificar el estado de árbol de trabajo local. Porque, francamente, siempre olvido que estaba haciendo. Así que entro el comando [ git status ].
Guarda los cambios si la rama no esta limpia
Segundo, luego de muchos intentos he aprendido que git no cambia de rama si hay algún cambio en el código y estos cambios no están guardados temporeramente (“stashed”) ó si los incluidos en la rama deseada (“commit”).
Así que, procedí a entrar el comando [ git stash ] para guardar los cambios de forma temporera.
Ahora, intentaré cambiar de la rama actual a la rama local de desarrollo. Tengo que asegurarme de que la rama local de desarrollo tenga la versión más actualizada de la versión remota.
Cambiar rama local
Ahora que la rama esta limpia, necesito cambiar el HEAD a la rama de desarrollo (“development”). [ git checkout development ] hace justo lo que necesito.
Actualizar la rama de desarrollo
Finalmente, actualiza la rama local de desarrollo con la rama de desarrollo del repositorio remoto. Así que entro [ git pull origin development ].
El comando [ git pull ] busca el contenido de la rama de desarrollo en el repositorio remoto y lo une el contenido remoto con el contenido de la rama local. Por otro lado, [ origin development ] se refiere a la rama que el sistema va a buscar para actualizar. “Origin” se refiere al repositorio de origen, en este caso el remoto. “Development” se refiere al nombre de la rama del árbol de trabajo.
Luego de la rutina de comandos git
De este punto en adelante, mis comandos git varían dependiendo de lo que tengo que hacer en el día. En esta ocasión, tengo que encontrar la causa de un error y solucionar ese problema. Por lo que, tengo que crear una nueva rama para ejecutar los cambios en la nueva rama. Eso require que cambie el HEAD del árbol de trabajo de la rama local de desarrollo (“development”) a la rama creada.
“¿Cómo se va a llamar la rama nueva?” comenzaron pensamientos nuevamente.
“Algo sencillo, directo al grano,” también pensé.
“Me voy con fix/this-feature,” decidí.
Así que hice una entrada del comando [ git checkout -b ‘fix/this-feature’ ].
Ejecuto el comando [ git status ] para asegurarme de que no estoy en la rama de desarrollo.
“Sí, estoy en la nueva rama de trabajo,” confirmé.
Luego, necesito unir la rama actualizada con la nueva rama para que la nueva rama de trabajo esta al día con la rama de desarrollo actualizada. El comando [git merge development ] ejecuta esta unión.
Few. Me alegra haber sacado eso del medio. Esos pasos, justo hasta cambiar desde la rama de desarrollo a la rama nueva o retrabajada, siempre me ponen nerviosa.
“¡Ahora, sí estoy lista para capturar ese error!” Y así fui a la aplicación y a mi editor de código a averiguar qué estaba pasando.
Ocurrió un error
Estaba envuelta mientras escribía código y todo estaba funcionando bien. Pero, algo pasó y un error confuso comenzó a aparecer.
“Otra aplicación esta usando ese puerto”, leía pero en inglés.
Como excelente depuradora, detuve el programa de la aplicación con [ control + c ] .
Volví a ejecutar el programa, pero no ayudó.
Así que le pedí ayuda a mi amigo Google. Me sugirió localizar y terminar el proceso en el puerto.
El comando en el terminal Mac para localizar y visualizar el listado de procesos trabajando en un puerto específico es [ lsof -i:PORT ]. [ lsof ] significa listado de archivos abiertos. [ -i ] es la lista de procesos. [ PORT ] es el número de puerto a verificar. En este caso, queremos verificar el puerto 3000, por lo que [ lsof -i:PORT ] se entra en el terminal como [ lsof -i:3000 ].
Luego de localizar el proceso que quiero terminar, procedo a entrar el comando [ sudo kill -9 PID ].
Estoy lista para reinicializar el programa de la aplicación.
“Grrrrrlrllrrlrlr” gruño mi estómago. “Estoy hambrienta. No puedo pensar cuando mi estómago me grita,” pensé.
“¿Almorzamos?” me pregunta Ramona.
“¡Sí!, por favor.” respondí y salí a almorzar así:
¡Gracias por leer!
Puedes obtener notificaciones de nuevos artículos directamente a tu buzón electrónico registrándote en el siguiente enlace.
Artículos relacionados:
Los siguientes artículos de CTRL-Y están relacionados a este escrito. ¡Deberías de echarles un vistazo!:
- Seguimiento de tareas y hábitos con Trello
- Pruebas al API con Mocha
- Filtrando con GraphQL y Prisma: Que NO hacer
- Incorporando activos digitales en tus finanzas
- Oficina en casa noctámbula
- Ingeniería industrial y Desarrollo web
- HTML para Principiantes
Punto aparte – Cheat sheets y un listado de reproducción
Disfrute de estas hojas de anotaciones o “cheat sheets” que incluye los comandos usados a través de la historia.
Escribí esta historia escuchando el nuevo álbum de Four Tet, Sixteen Candles de fondo. Fué lanzado recientemente. El principio de la primera canción establece un ánimo increíble y sutil para tener un día productivo. A sido mi álbum a escuchar durante este periodo de cuarentena.