Conviene haber comprendido Commits e historial comprensible.
Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.
Ubícate antes de avanzar
Al terminar deberías poder relacionar restore y amend con revert y reset y resolver un caso nuevo.
Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.
Instala Git y utiliza Git Bash, PowerShell o una terminal Unix. Mantén un repositorio desechable para probar recuperación y conflictos.
Abrir la guía de herramientas →Diagnóstico rápido: ¿cómo se relacionan restore y amend y revert y reset? +
No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.
Aprende el tema paso a paso
Elegirás una estrategia de recuperación según dónde está el cambio y si el historial ya fue compartido.
- Restore y amend tienen alcances diferentes
- Revert añade historia; reset mueve una referencia
- Detached HEAD permite inspeccionar; reflog ayuda a recuperar movimientos locales
Restore y amend tienen alcances diferentes
git restore archivo reemplaza cambios de trabajo desde el índice; --staged retira del staging conservando el archivo modificado. amend sustituye el último commit y es apropiado para corregir un commit local que aún no depende de trabajo compartido.
Primero identifica la copia que quieres conservar.
restore --staged no borra la edición del archivo.
Amend cambia la identidad del commit.
¿Qué conserva git restore --staged archivo?
Mostrar respuesta +
Conserva el contenido modificado en el directorio de trabajo y lo retira del próximo commit.
Revert añade historia; reset mueve una referencia
git revert crea un commit que invierte el efecto de otro y mantiene visible lo ocurrido, por eso es apropiado para historia compartida. reset mueve la rama y sus modos deciden qué ocurre con staging y trabajo. El modo hard puede descartar contenido no registrado.
Prefiere revert cuando otras personas ya recibieron el commit.
Usa reset solo después de dibujar el estado final esperado.
No reescribas una rama compartida sin coordinación explícita.
¿Por qué revert suele ser más seguro que reset en main compartida?
Mostrar respuesta +
Porque agrega un nuevo commit sin cambiar la identidad de los commits que otras personas ya descargaron.
Detached HEAD permite inspeccionar; reflog ayuda a recuperar movimientos locales
Al cambiar directamente a un commit, HEAD queda separado de una rama. Puedes inspeccionar o crear una rama desde allí. Reflog conserva movimientos locales recientes de HEAD y ramas, útil cuando una referencia dejó de apuntar a un commit que necesitas.
No confirmes trabajo importante sin crear una rama.
Reflog es local y tiene retención limitada.
Recupera creando una referencia antes de seguir experimentando.
¿Detached HEAD significa que el repositorio está dañado?
Mostrar respuesta +
No. Significa que HEAD apunta directamente a un commit y no a una rama. Es válido para inspección, pero el trabajo nuevo debe anclarse con una rama.
Tu recorrido en tres ideas
- Restore y amend tienen alcances diferentes
- Revert añade historia; reset mueve una referencia
- Detached HEAD permite inspeccionar; reflog ayuda a recuperar movimientos locales
Recupera tres errores sin perder el trabajo correcto
Relaciona zona, alcance, historia compartida y recuperación antes de elegir un comando.
Preparaste un archivo equivocado, publicaste un commit defectuoso y después una rama local dejó de apuntar a otro commit valioso.
Procedimiento
- Dibuja HEAD, staging y trabajo antes de cada recuperación.
- Retira del staging, revierte el commit compartido y publica la corrección.
- Localiza el commit local mediante reflog y crea una rama de rescate.
Evidencia mínima
- Status y log antes y después.
- Commit de revert sin reescritura compartida.
- Rama nueva que hace alcanzable el trabajo recuperado.
Mostrar razonamiento modelo +
Cada fallo usa una herramienta distinta porque vive en otra zona. Restore --staged conserva la edición; revert añade historia; reflog localiza el hash y una rama lo protege.
Para ir más lejos¿Cuándo amend sería más claro que crear otro commit?
Comprueba que puedes usarlo
Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.
Usar reset cuando restore o revert tienen un alcance más seguro.
Seguir trabajando en detached HEAD sin crear una referencia.
Ahora hazlo sin guía
En un laboratorio, retira un archivo del staging, revierte un commit y rescata otro mediante reflog.
Mostrar pauta de corrección +
- Predice el estado final antes de actuar.
- No pierde el cambio que debía conservar.
- Diferencia historia local de historia compartida.
