30 Viaje en el tiempo: ver el pasado
A veces solo necesitas ver varios archivos de tu proyecto tal como estaban en algún momento importante del pasado. Ejemplos:
- “Me gustó más la combinación de colores de esta trama en el borrador de la semana pasada”. “¿Qué pasa con ese nuevo caso atípico de la figura 2?”
- Aquí querrá visitar los scripts y los datos de origen tal como estaban la última vez que generó visualizaciones para compartir con este colega.
- “La compilación ha estado fallando en Windows durante dos semanas”.
- Aquí querrás inspeccionar el origen del paquete en la “última versión buena conocida” y examinar las confirmaciones posteriores.
Todos los proyectos pasan por varios estados que usted considera “buenos” versus “malos” o algo intermedio. Puede resultar útil explorar el pasado cuando se intenta llegar a un “buen” estado.
30.1 ¡Los hipervínculos son increíbles!
Aquí es donde GitHub (y GitLab o BitBucket) realmente brillan. La capacidad de explorar rápidamente diferentes confirmaciones/estados, cambiar entre ramas, inspeccionar archivos individuales y ver la discusión en temas vinculados es increíblemente poderosa.
Sí, técnicamente, puedes visitar estados anteriores de tu proyecto usando comandos de Git localmente. Pero es mucho más complicado. Por lo general, hay que verificar estos estados anteriores, lo que aumenta la posibilidad de sentirse cómodo en el estado de “detached head” y, sin querer, realizar nuevas confirmaciones en la rama equivocada o en ninguna rama.
La presentación rica en hipervínculos de GitHub de su repositorio y su historial es una de las principales razones para sincronizar el trabajo local con una copia en GitHub, incluso si lo mantiene privado. Puede ser mucho más fácil concentrarse en un estado o cambio de interés haciendo clic o usando las funciones de búsqueda de GitHub. Además, debido a que es claramente una acción remota y de solo lectura, no hay posibilidad de cometer un error en el estado local o enviar un nuevo trabajo a la rama equivocada.
30.2 Explorar el historial de confirmaciones y confirmaciones específicas
Desde la página de inicio de su repositorio, acceda al historial de confirmaciones haciendo clic en “xyz commits”. Esto es como usar git log
localmente, pero mucho más gratificante. Si tiene un buen cliente Git local, probablemente también proporcione una descripción gráfica del historial.
Una vez que esté viendo el historial, observe tres formas de acceder a más información para cada confirmación:
- El icono del portapapeles copia el SHA-1 de la confirmación. Esto puede resultar útil si necesita consultar esta confirmación en otro lugar, p. en un hilo de problema o un mensaje de confirmación o en un comando de Git que estás formando para ejecución local.
- Haga clic en el SHA-1 abreviado para ver la diferencia asociada con la confirmación.
- Haga clic en los corchetes angulares dobles
<>
para explorar el estado de todo el repositorio en ese punto de la historia.
Salga de cualquier vista detallada haciendo clic en USTED/REPO
para regresar a la página de inicio de su repositorio. Esto lo devuelve al estado actual y al nivel superior de su repositorio.
30.2.1 ¡Utilice hipervínculos usted mismo!
Una vez que haya identificado una confirmación, diferencia o estado de archivo relevante, puede copiar la URL actual desde su navegador y usarla para mejorar la discusión en línea en otros lugares, es decir, para llevar a otras personas a esta vista exacta del repositorio. Los hipervínculos de los repositorios alojados en GitHub pueden hacer que la discusión en línea de un proyecto sea mucho más precisa y eficiente.
30.3 Consultas basadas en archivos
¿Qué sucede si está interesado en saber cómo un archivo específico llegó a ser como es? Primero navegue hasta el archivo, luego observe “Blame” e “History” en la esquina superior derecha.
30.3.1 Blame
La vista de “blame” de un archivo está relacionada con lo que hace git blame
en la línea de comando. Revela quién tocó por última vez cada línea del archivo, hace cuánto tiempo y el mensaje de confirmación asociado. Haga clic en el mensaje de confirmación para visitar esa confirmación. O haga clic en el icono de “rectángulos apilados” para retroceder en el tiempo, pero manteniendo la vista de culpa. Esto es útil cuando se realizan análisis forenses en un conjunto pequeño y específico de líneas.
agregue una captura de pantalla (y actualícela arriba) pero primero elija un ejemplo mejor que Happy Git, es decir, uno con más contribuyentes/historial más interesante
30.3.2 Historial
La vista de “history” de un archivo es muy parecida al historial general de confirmaciones descrito anteriormente, excepto que solo incluye confirmaciones que afectan el archivo de interés. Esto puede resultar útil cuando su consulta es bastante difusa y está intentando digerir el arco argumental general de un archivo.
30.3.3 Hipervínculo a líneas específicas en un estado específico
Al ver un archivo en GitHub, puede hacer clic en un número de línea para resaltarlo. Utilice “hacer clic… mayús-clic” para seleccionar un rango de líneas. Observe que la URL de su navegador muestra algo parecido a este:
https://github.com/OWNER/REPO/blob/SHA/path/to/file.R#L27-L31
Si la URL no contiene el SHA, escriba “y” para alternar a ese formulario.
Estas URL específicas de archivos y SHA son una excelente manera de señalar a las personas líneas de código particulares en conversaciones en línea. Es una buena práctica utilizar los enlaces más feos que contienen SHA, ya que resistirán la prueba del tiempo.
30.4 Buscar
La búsqueda siempre está disponible en la esquina superior derecha de GitHub.
Una vez que ingresa algo de texto en el cuadro de búsqueda, un menú desplegable le brinda la opción de buscar en el repositorio actual (el predeterminado) o en todo GitHub. GitHub busca el contenido de los archivos (descritos como “Code”), confirma mensajes y problemas. Aproveche los resultados de búsqueda en estos diferentes dominios. Nuevamente, esta es una manera poderosa de acercarse a líneas de código específicas, volver a visitar un momento interesante en la historia del proyecto o redescubrir un hilo de conversación.
30.4.1 Búsqueda de problemas
Si desea buscar problemas específicamente, el cuadro de búsqueda en la página de Problemas de cualquier repositorio está precargado con los filtros is:issue
y is:open
.