OpoTests/Public/json/gemini/examenes/dias/07/07.git.json
2026-05-01 10:13:50 +02:00

79 lines
3.8 KiB
JSON

[{
"origin": "Gemini 3 Flash",
"sources": [
"https://git-scm.com/docs"
],
"title": "Git - Gestión Avanzada del Historial",
"group": "git_history_brothers_001",
"queries": [{
"question": "¿Qué {rand:comando|acción} permite {rand:reescribir|reorganizar} el historial aplicando los commits de una rama sobre la punta de otra de forma {rand:lineal|secuencial}?",
"rights": [
"git {rand:rebase|rebase -i}."
],
"wrongs": [
"git {rand:checkout|switch} -b nueva_rama.",
"git {rand:commit --amend|commit -a}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Checkout o switch sirven para cambiar de rama, no para reescribir el historial sobre otra punta.",
"Amend modifica el último commit, pero no reorganiza el historial de una rama completa sobre otra."
]
}, {
"question": "¿Qué {rand:comando|instrucción} se usa para {rand:aplicar|traer} los cambios de un {rand:commit específico|hash concreto} de una rama a la rama {rand:actual|en la que estamos}?",
"rights": [
"git {rand:cherry-pick|cherry-pick <commit-hash>}."
],
"wrongs": [
"git {rand:pull|fetch} origin main.",
"git {rand:merge|merge --no-ff}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Pull trae todos los cambios de una rama remota, no uno solo específico de forma aislada.",
"Merge une una rama completa, lo que puede introducir commits que no deseamos en ese momento."
]
}, {
"question": "¿Qué {rand:operación|comando} crea un {rand:nuevo commit|commit adicional} que {rand:deshace|revierte} los efectos de uno anterior {rand:sin alterar|manteniendo intacto} el historial?",
"rights": [
"git {rand:revert|revert <hash>}."
],
"wrongs": [
"git {rand:reset --hard|reset --soft}.",
"git {rand:rm|remove} --cached <file>."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Reset borra o mueve el historial hacia atrás; no crea un nuevo commit de reversión.",
"Rm elimina archivos del índice o del disco, no revierte la lógica de un commit completo."
]
}, {
"question": "¿Qué {rand:comando|utilidad} registra {rand:cada movimiento|todos los cambios} de las puntas de las ramas para {rand:recuperar|encontrar} commits {rand:perdidos|huérfanos}?",
"rights": [
"git {rand:reflog|reflog show}."
],
"wrongs": [
"git {rand:log --oneline|log -p}.",
"git {rand:status|status -s}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Log muestra el historial de commits confirmados, pero no los movimientos de los punteros o commits borrados.",
"Status solo muestra el estado actual del directorio de trabajo y el área de preparación."
]
}, {
"question": "¿Qué {rand:instrucción|comando} se encarga de {rand:mover|desplazar} el puntero de la rama actual a un {rand:estado anterior|commit específico}, {rand:pudiendo eliminar|borrando opcionalmente} los cambios del directorio de trabajo?",
"rights": [
"git {rand:reset|reset --hard}."
],
"wrongs": [
"git {rand:clean -fd|clean -x}.",
"git {rand:checkout -- .|restore .}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Clean borra archivos untracked, pero no mueve el puntero de la rama en el historial.",
"Restore o checkout sobre el directorio actual recuperan archivos, pero no cambian el commit en el que se encuentra la rama."
]
}]
}]