Tema 6: HEAD y la posición actual
HEAD identifica la posición actual. Normalmente apunta a la rama seleccionada, y esa rama señala su último commit. Al crear un commit en esa situación, la rama avanza y HEAD sigue unido a ella.
HEAD~1 significa el primer antecesor de la posición actual. HEAD~2 retrocede dos veces por el primer padre. Si no existe ese antecesor, la referencia da un error. HEAD^1 también selecciona el primer padre; de momento nuestros commits normales tienen uno. Más adelante estudiaremos commits con dos padres.
Para inspeccionar una versión concreta usa git switch --detach HEAD~1 o su identificador. Ahora HEAD apunta directamente a un commit: se llama HEAD separado. Los archivos reflejan esa versión, pero ninguna rama se selecciona para avanzar con nuevos commits.
En documentación anterior se usa git checkout <identificador> con el mismo resultado de posición separada. Recuerda la diferencia con el tema 4: checkout main selecciona una rama; checkout seguido de un identificador visita una versión directamente.
Consulta git log para reconocer la posición y regresa con git switch main. No hagas commits durante esta inspección. Git permite crearlos en posición separada, pero para conservarlos de forma cómoda necesitarías una rama; su creación llegará en el tema 13. Visitar una versión y volver no borra los commits más recientes de main.
Comandos para probar #
1git status 2git log --oneline 3git switch --detach HEAD~1 4git log 5git switch main
Error que conviene evitar #
Confundir visitar un commit con retroceder la referencia main. switch --detach cambia tu posición, pero main conserva su destino.
Laboratorio local #
Prueba los comandos y observa qué cambia. Puedes reiniciar sin guardar una entrega. Los retos evaluables y el cuestionario están en las actividades de este tema.
Git / práctica local
Encuentra HEAD
Aplicar edición cambia el archivo; git add lo prepara.
Historial de commits
Cada punto representa una versión guardada.
- 0000002: Añade saludo; HEAD → main
- 0000001: Commit inicial;
Comparar trabajo, índice y HEAD
Trabajo
Hola Git
Índice (staging)
Hola Git
HEAD
Hola Git
TERMINAL
Sesión local preparada. Escribe help para consultar los comandos de este tema.
Comandos disponibles y límites
git --version · git config --global <clave> [valor] git init · git status git add <archivo | .> · git commit -m "mensaje" · git log git log --oneline · git switch <rama> (antes: checkout) git restore [--staged] <archivo> · git commit --amend [-m "mensaje" | --no-edit] git switch --detach <commit> · HEAD · HEAD~1 help · clear
Sesión en memoria: recargar descarta la práctica. Doscientas acciones como máximo. Dos archivos editables de hasta 250 líneas. El modelo no ejecuta comandos reales ni realiza conexiones externas.
Resumen
- Normalmente se une a una rama; también puede apuntar directamente a un commit.
- Debe existir un antecesor para poder visitarlo.
- Deja HEAD separado.
- Confundir visitar un commit con retroceder la referencia main. switch --detach cambia tu posición, pero main conserva su destino.