Este examen está diseñado para probar conocimientos avanzados y expertos en Git, enfocándose en situaciones complejas y comandos menos comunes que podrían encontrarse en escenarios reales de desarrollo de software. Es ideal para estudiantes de Formación Profesional Superior que ya tienen una buena base en Git y buscan profundizar su comprensión.
Pregunta 1: Recuperación de Commits
¿Cómo recuperarías un commit que ha sido eliminado accidentalmente debido a un git reset --hard
?
Respuesta:
git reflog
# Encuentra el commit deseado en la lista, y luego:
git reset --hard COMMIT_ID
Pregunta 2: Modificar un Commit Previo
¿Qué comandos utilizarías para modificar el mensaje del último commit realizado?
Respuesta:
git commit --amend -m "Nuevo mensaje del commit"
Pregunta 3: Reordenar Commits
Si quieres cambiar el orden de los últimos tres commits, ¿qué herramienta de Git utilizarías y cómo la iniciarías?
Respuesta:
git rebase -i HEAD~3
# En el editor interactivo, reordena las líneas de los commits según deseado.
Pregunta 4: Resolver Conflictos
Explica cómo resolverías un conflicto de merge entre dos ramas, main
y feature-x
.
Respuesta:
- Ejecuta
git merge feature-x
estando en la ramamain
. - Abre los archivos conflictivos y edita el código para resolver los conflictos.
- Usa
git add .
para marcar los conflictos como resueltos. - Completa el merge con
git commit
para crear un nuevo commit de merge.
Pregunta 5: Estrategias de Merge
¿Qué comando usarías para realizar un merge de la rama feature-x
a main
utilizando la estrategia ‘ours’?
Respuesta:
git checkout main
git merge -s ours feature-x
Pregunta 6: Búsqueda en Repositorio
¿Cómo buscarías en tu historial de commits cualquier commit que contenga la palabra ‘bugfix’?
Respuesta:
git log --grep='bugfix'
Pregunta 7: Cherry-pick de Commits
¿Cómo aplicarías un commit específico de una rama a otra? Supón que el commit tiene un hash de abc1234
.
Respuesta:
git checkout rama-destino
git cherry-pick abc1234
Pregunta 8: Stashing
Explica cómo salvarías cambios temporales en una stash y luego los aplicarías en otra rama.
Respuesta:
- Guarda los cambios temporales:
git stash
- Cambia a la otra rama:
git checkout otra-rama
- Aplica la stash:
git stash pop
Pregunta 9: Rebase Interactivo
¿Cómo eliminarías un commit específico de una serie de commits utilizando rebase interactivo?
Respuesta:
- Inicia el rebase interactivo:
git rebase -i HEAD~X # X es el número de commits hacia atrás que deseas revisar.
- En la lista que aparece, cambia ‘pick’ a ‘drop’ al lado del commit que deseas eliminar.
Pregunta 10: Submódulos en Git
¿Cómo agregarías un submódulo a tu repositorio?
Respuesta:
git submodule add URL_DEL_SUBMODULO ruta/relativa/del/submodulo
git commit -m "Agregado submódulo"
Conclusión
Este examen avanzado está diseñado para medir la habilidad de los estudiantes de FP Superior en DAW o DAM para manejar situaciones complejas en Git, desde la recuperación de commits eliminados hasta el manejo avanzado de submódulos y estrategias de merge. Dominar estos aspectos avanzados de Git es crucial para cualquier desarrollador que aspire a trabajar en entornos de desarrollo sofisticados y colaborativos.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.