Saltar al contenido
GitTree

Lección 8 · trabajo diario

Leer el historial sin mover la CABEZA

Registre la edición del radio sobrante, documente el historial real y compare los conjuntos de revisiones con las diferencias del árbol de archivos. Seleccionar una fila del gráfico es una inspección, no un cambio de rama.

Progreso guardado en este navegador.

La reproducción carga el vídeo de YouTube (modo de privacidad mejorada).

Narración en inglés · English and Arabic subtítulos

Abre la página del vídeoVer en YouTube

lo que aprenderás

  • Distinga HEAD, una confirmación, un autor y una confirmación seleccionados.
  • Siga a los padres y a los antepasados primerizos.
  • Lea conjuntos de registros de dos o tres puntos sin confundirlos con puntos finales diferenciales.
  • Compare dos confirmaciones reales en GitTree sin reescribir el historial.

Antes de empezar

Comienza donde terminó la lección 7: main tiene tres confirmaciones de las lecciones 5 a 7. Solo el radio CSS permanece modificado: HEAD y el índice contienen CSS-02-INDEX, el archivo de trabajo CSS-02-WORKING. Sin control remoto. El vídeo se grabó con Git 2.52.0 y GitTree 2.0 en Ubuntu 24.04: ambas confirmaciones, el documento, la inspección de gráficos, la búsqueda, Saltar a HEAD y Comparar referencias se operaron en la aplicación, y las comprobaciones del terminal se ejecutaron con lo que creó la aplicación, por lo que los ID de confirmación que se muestran son los que comparó la aplicación. El caso de rama divergente es un diagrama: no se creó ninguna rama característica. No se ejecutó nada en macOS o Windows, y Ubuntu es el único sistema Linux registrado. El mínimo de fuente de GitTree es Git 2.39.0; Una vez que haya iniciado sesión, la inspección local y las confirmaciones están en el plan gratuito.

Concepto

Una confirmación registra un árbol, metadatos e ID de padres. Una rama nombra una confirmación; HEAD normalmente nombra la rama actual. Al hacer clic en otra fila del gráfico, se cambia el selection de la aplicación, no el HEAD, la rama o los archivos del disco. El autor registra quién escribió la obra; El confirmador registra quién registró esta confirmación. Resulta que aquí son la misma identidad ficticia.

Para una cadena lineal, HEAD~1 sigue un borde del primer padre; HEAD~2 sigue a dos. HEAD^1 es el primer padre; HEAD^2 significa second parent of one commit, no "dos confirmaciones". Una confirmación sin fusión no tiene un segundo padre.

git log A..B significa accesible desde B excluyendo accesible desde A. git log A...B significa diferencia simétrica de accesibilidad. git diff A B compara árboles de puntos finales, mientras que git diff A...B compara merge-base(A,B) con B. Un registro de tres puntos y una diferencia de tres puntos no plantean la misma pregunta. En esta historia lineal algunos resultados coinciden; No generalices esa coincidencia a ramas divergentes. Notación de revisión, semántica de diferencias.

Leer/seleccionar/buscar cambios sin índice, bytes de trabajo o referencias. Las dos confirmaciones explícitas de esta lección mueven local main: radio primero, documentación segundo. Sin cambios remotos.

documento histórico completo

Primero confirme la edición del radio existente como se muestra a continuación. Luego cree docs/history.md con este cuerpo UTF-8/LF completo; su elemento final describe la confirmación que contendrá el documento, no un SHA inventado.

Extracto del archivo · markdown
# GitTree Features history

The first-parent chain on main, oldest first:

1. feat: add the GitTree Features hero
2. feat: add styling and local project checks
3. feat: refine the hero and card spacing
4. style: finish the card radius change
5. docs: record logs-and-revisions practice

After this document is committed, HEAD names item 5.
HEAD~1 names item 4; HEAD~2 names item 3.
Selecting a graph row does not move HEAD.
These labels are descriptions, not fabricated commit SHAs.

All identities in this project are fictional.

No agregue el cuaderno de práctica opcional ni compromisos de limpieza adicionales a esta cadena de cinco compromisos.

En GitTree

  1. Paleta Show Working Changes (Comando/Ctrl+Mayús+P para abrir la paleta). Haga clic en estilos.css debajo de Unstaged Files. Confirme que solo queda un radio de 0,5 rem → 0,75 rem; no repita el cambio de ancho anterior.
  2. Elija su acción de fila Stage File, ingrese Resumen style: finish the card radius change, desactive las opciones normales y luego Commit Changes to 1 File (o Comando/Ctrl+Intro una vez). Verifique cuatro confirmaciones y limpie el estado del seguimiento.
  3. Paleta New File… → Path from the project folder = docs/history.md → Create. Pegue el documento completo y Save. Back to Graph → Show Working Changes → Archivo de etapa para docs/history.md.
  4. Resumen docs: record logs-and-revisions practice; cometer un archivo. La cadena esperada ahora tiene cinco confirmaciones.
  5. Haga clic en la fila del héroe raíz. Inspeccione su SHA real, asunto, autor/confirmador y estado principal de root commit en los detalles de la confirmación. Haga clic en la última fila; comparar su relación padre. No invoque Check Out This Commit simplemente para leerlo.
  6. En los detalles de la confirmación, active View all files para distinguir todo el árbol de la confirmación de las rutas modificadas únicamente; inspeccionar el documento en su revisión registrada. Esto no modifica el archivo de trabajo.
  7. Devolver Back to Graph; use la paleta Search Loaded History o Comando/Ctrl+F while the graph is active, escriba radius e inspeccione el historial cargado de coincidencias. En un editor, el mismo acorde encuentra el texto del editor. Borre la búsqueda después. Una búsqueda del historial cargado no es una consulta del historial de todo el servidor.
  8. Paleta Jump to HEAD, Comando/Ctrl+Mayús+H, localiza la sugerencia actual. La selección/búsqueda puede moverse mientras el git symbolic-ref --short HEAD nativo sigue informando como principal.
  9. Utilice git rev-parse HEAD~2 nativo para obtener su ID de confirmación real; no se proporciona SHA de curso fijo. La paleta Compare References… (repo.compareRefs) abre Compare References. En Old side, pegue ese ID medido y seleccione su opción de confirmación; en New side, elija CABEZA. El selector acepta un ID de confirmación, no una promesa de que allí se analicen expresiones de revisión arbitrarias.
  10. En What to compare, elija The two endpoints y luego Compare. Espere diferencias en docs/history.md y estilos.css para esta cadena. Vuelva a abrir/cambiar la comparación y elija Changes since the merge base con los mismos lados: la ascendencia lineal hace que el resultado del punto final coincida aquí. No infieras el comportamiento del registro simétrico desde esa vista. Cancel sale sin cambiar el historial.

en la terminal

Alternativa de mutación nativa, solo antes del éxito de la aplicación correspondiente:

Command · bash
git add -- styles.css
git commit --quiet -m "style: finish the card radius change"

Ambos lo lograron en silencio. Después de guardar el documento completo:

Command · bash
git add -- docs/history.md
git commit --quiet -m "docs: record logs-and-revisions practice"
git log --reverse --format=%s

Cadena completa observada:

Salida
feat: add the GitTree Features hero
feat: add styling and local project checks
feat: refine the hero and card spacing
style: finish the card radius change
docs: record logs-and-revisions practice

Inspeccionar conjunto versus árbol:

Command · bash
git log --format=%s HEAD~2..HEAD
git log --format=%s HEAD~2...HEAD

Cada consulta impresa por separado:

Salida
docs: record logs-and-revisions practice
style: finish the card radius change

Coinciden sólo porque el punto final más antiguo es un antepasado aquí.

Command · bash
git diff --name-only HEAD~2 HEAD
git rev-list --count HEAD
git symbolic-ref --short HEAD

Salidas en orden:

Salida
docs/history.md
styles.css
5
main

Los dos archivos con nombre son diferencias de árbol, no las identidades de las dos confirmaciones devueltas por el registro.

Command · bash
git rev-parse --verify --quiet HEAD^2

No se observó ninguna salida estándar/stderr ni salida 1: la última confirmación no es una fusión. Utilice HEAD~2 para dos pasos de primer padre en su lugar. Para identificar una ID de comparación real:

Command · bash
git rev-parse HEAD~2

Lea su resultado real durante el ensayo; un SHA medido cambia con los metadatos de confirmación y no debe copiarse de una etiqueta de modelo.

Resultado

Al final de esta lección: cinco confirmaciones en main en el orden documentado; trabajo rastreado/índice limpio, sin control remoto ni operación en progreso. CSS ahora tiene un radio de 0,75 rem y docs/history.md está confirmado. Al leer una fila del gráfico anterior no se ha separado HEAD.

Errores comunes

  • Tratar la fila seleccionada como confirmación desprotegida: inspeccionar HEAD de forma independiente.
  • Leyendo ^2 como ~2: segundo padre versus dos bordes del primer padre.
  • Aplicación del significado de registro simétrico a la diferencia de tres puntos: la diferencia es direccional desde la base de fusión hacia la derecha.
  • Suponiendo que la búsqueda de gráficos cubra el historial descargado/no recuperado.

Si algo sale mal

Una revisión faltante puede significar ascendencia insuficiente, un error tipográfico o un límite superficial, no corrupción. Verifique la cadena y el repositorio seleccionado. Borrar los filtros de la aplicación antes de concluir una confirmación desapareció. No realice compras de un proveedor arbitrario, no restablezca ni pague simplemente para reparar una selección. Si un documento ya existe, inspeccione su contenido antes de aplicar este paso de archivo nuevo.

Comprueba tu comprensión

Responda cada pregunta y luego lea por qué. Las preguntas marcadas como "Obligatorias" cuentan para completar la lección.

  1. Pregunta 1 de 6

    ¿Qué ocurre aquí al hacer clic en una fila del gráfico anterior?

    Elija una respuesta.

  2. Pregunta 2 de 6

    ¿Qué afirmaciones son correctas en esta cadena lineal de cinco compromisos?

    Elija cada respuesta que corresponda.

  3. Pregunta 3 de 6
    Requerido

    ¿Qué temas están en HEAD~2..HEAD después de que se confirma History.md?

    Elija una respuesta.

  4. Pregunta 4 de 6
    Requerido

    El principal es H5; la característica F desciende de H3. ¿Cuál es la característica principal... en git log?

    Elija una respuesta.

  5. Pregunta 5 de 6

    ¿Git diff A...B significa el conjunto de registros simétrico?

    Elija una respuesta.

  6. Pregunta 6 de 6
    Requerido

    ¿Qué observaciones prueban el punto de control terminado?

    Elija cada respuesta que corresponda.

0 de 6 correcto

Responda correctamente las preguntas requeridas para completar la lección.

Comprobado en este navegador.

Practica

Seleccione una fila anterior y demuestre que HEAD permanece principal. Explique por qué dos entradas de registro pueden corresponder a diferencias en sólo dos caminos. Entrada modificada: para una rama separada con una confirmación de H3 mientras que principal está en H5, predecir que la característica principal contiene solo esa confirmación de característica, pero la característica principal... también incluye H4/H5. No cree esa rama en el punto de control canónico; Utilice una copia desechable.

Su propia confirmación: el sitio no puede ver su computadora.

Para completar la lección, responde correctamente a las preguntas requeridas y confirma el ejercicio práctico.

Resumen

  • Selection y HEAD tienen propietarios diferentes.
  • La notación principal y los conjuntos de revisión describen la ascendencia, no los cambios de archivos.
  • Compare puntos finales reales resueltos y etiquete la pregunta claramente.

Términos del glosario introducidos

Comprometerse - إيداع; padre—إيداع أب; ref—مرجع; revisión — مراجعة; rango — نطاق; fusionar base — أساس الدمج; autor — المؤلف; comprometidor - المُودِع.

Transcripción del vídeo

La narración del vídeo, cue a cue.

Mostrar la transcripción
  1. Leer historia sin mudando su sucursal actual.
  2. Primero inspecciona el edición independiente dejada por L007.
  3. Registre el radio como su propio compromiso local.
  4. Escribe la cadena documentada usando sujetos, no hashes inventados.
  5. El documento se convierte en quinto compromiso en esta cadena.
  6. Verifique el pedido real antes Notación de revisión didáctica.
  7. Un nombre de sucursal y un seleccionado fila del gráfico son diferentes.
  8. Seleccionar solo la raíz cambia el compromiso inspeccionado.
  9. El árbol completo no es sólo el la lista cambió en esa confirmación.
  10. Busca en el historial cargado, no un archivo prometido para todo el servidor.
  11. Devuelve la selección al consejo actual.
  12. El terminal de forma independiente confirma la sucursal retirada.
  13. Dos pasos de los padres no son los segundo padre de una confirmación.
  14. Este compromiso de no fusión no tiene un segundo padre.
  15. Estos conjuntos concuerdan aquí porque los puntos finales son los antepasados.
  16. Un árbol de diferencia de nombres de archivos, no un conjunto de identidades de confirmación.
  17. Utilice un ID de confirmación medido en el selector de comparación.
  18. Compara los dos resueltos árboles sin cambiar las referencias.
  19. Este modo compara la fusión base con el lado derecho.
  20. Una gráfica divergente hace los dos rangos logarítmicos difieren.
  21. Registro de tres puntos y tres puntos. diff responde diferentes preguntas.
  22. Una selección equivocada necesita navegación, no recuperación destructiva.
  23. Verificar la cadena y sin cambios. CABEZA antes de ramificarse.
  24. A continuación, cree y cambie nombres de sucursales deliberadamente.