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

128 lines
6.1 KiB
JSON

[{
"origin": "Gemini 3 Flash",
"sources": [
"https://git-scm.com/book/es/v2",
"https://atlassian.com/es/git/tutorials"
],
"title": "Git Avanzado: Flujos, Remotos y Configuración",
"group": "git_master_block_tocho_001",
"variables": {
"niveles_config": ["list", ["--local", "--global", "--system"]],
"estados_git": ["list", ["{Working Directory}", "{Staging Area (Index)}", "{Git Directory (Repository)}"]],
"acciones_stash": ["list", ["pop", "apply", "drop", "list", "clear"]],
"tipos_merge": ["list", ["fast-forward", "recursive", "ours", "theirs", "octopus"]]
},
"queries": [{
"question": "¿Qué {rand:parámetro|opción} de 'git stash' permite {rand:recuperar|restaurar} los cambios guardados {rand:eliminándolos|borrándolos} de la lista de estados ocultos?",
"rights": [
"git stash {rand:pop|pop stash@{0}}."
],
"wrongs": [
"git stash {rand:apply|apply --index}.",
"git stash {rand:drop|drop all}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Apply restaura los cambios pero los mantiene en la lista de 'stashes' para su uso posterior.",
"Drop elimina un estado oculto de la lista pero no aplica los cambios al directorio de trabajo."
]
}, {
"question": "¿En qué {rand:nivel|fichero} de configuración se guardan las opciones {rand:específicas|propias} de un {rand:único repositorio|proyecto concreto}?",
"rights": [
"git config {rand:--local|.git/config}."
],
"wrongs": [
"git config {rand:--global|~/.gitconfig}.",
"git config {rand:--system|/etc/gitconfig}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"El nivel global afecta a todos los repositorios del usuario actual en el sistema.",
"El nivel system afecta a todos los usuarios y todos los repositorios del sistema operativo."
]
}, {
"question": "¿Qué {rand:comando|acción} se utiliza para {rand:establecer|configurar} una conexión con un {rand:servidor externo|repositorio remoto} por primera vez?",
"rights": [
"git remote {rand:add|add origin} <url>."
],
"wrongs": [
"git remote {rand:set-url|rename} origin <url>.",
"git remote {rand:show|v} origin."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Set-url se usa para modificar una dirección de un remoto que ya ha sido añadido previamente.",
"Show y -v sirven para visualizar la información de los remotos, no para crearlos."
]
}, {
"question": "¿Qué {rand:estrategia|tipo} de 'merge' ocurre cuando la {rand:rama de destino|rama base} no tiene {rand:commits nuevos|modificaciones} y solo se mueve el puntero hacia adelante?",
"rights": [
"Un merge de tipo {rand:fast-forward|avance rápido}."
],
"wrongs": [
"Un merge de tipo {rand:recursive|recursivo}.",
"Un merge de tipo {rand:octopus|pulpo}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"El modo recursivo es el que crea un commit de fusión cuando ambas ramas han divergido con cambios distintos.",
"El modo octopus se utiliza para fusionar más de dos ramas simultáneamente en un solo movimiento."
]
}, {
"question": "¿Qué {rand:área|estado} de Git {rand:contiene|almacena} los archivos modificados que {rand:van a ser incluidos|están listos para} el próximo commit?",
"rights": [
"El {rand:Staging Area|Index}."
],
"wrongs": [
"El {rand:Working Directory|directorio de trabajo}.",
"El {rand:Git Directory|Repository}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"El directorio de trabajo contiene los archivos tal cual los estás editando, antes de hacer un 'git add'.",
"El Git Directory es donde se almacena la base de datos de objetos y el historial ya confirmado."
]
}, {
"question": "¿Cómo se {rand:denomina|llama} al puntero {rand:especial|móvil} que indica {rand:en qué commit|en qué posición} nos encontramos actualmente?",
"rights": [
"El puntero {rand:HEAD|{HEAD}}."
],
"wrongs": [
"El puntero {rand:master|main}.",
"El puntero {rand:origin|upstream}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Master o Main son los nombres de la rama por defecto, pero no indican la posición relativa de trabajo actual.",
"Origin es el nombre estándar del repositorio remoto, no un puntero de posición local."
]
}, {
"question": "¿Qué {rand:parámetro|opción} de 'git commit' permite {rand:corregir|modificar} el último commit realizado, {rand:añadiendo cambios|cambiando el mensaje}?",
"rights": [
"git commit {rand:--amend|--amend -m}."
],
"wrongs": [
"git commit {rand:-a|-all}.",
"git commit {rand:--fixup|--squash}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"La opción -a añade automáticamente archivos modificados al commit, pero no modifica el anterior.",
"Fixup y squash se usan en procesos de rebase interactivo para combinar commits, no para editar el último de forma aislada."
]
}, {
"question": "¿Qué {rand:comando|instrucción} permite {rand:ver|listar} todas las {rand:ramas locales y remotas|referencias de ramas} disponibles en el repositorio?",
"rights": [
"git branch {rand:-a|--all}."
],
"wrongs": [
"git branch {rand:-d|--delete}.",
"git branch {rand:-m|--move}."
],
"brothers_are_wrongs": true,
"wrong_explanations": [
"Delete sirve para eliminar una rama, no para listar las existentes.",
"Move se utiliza para renombrar una rama, ya sea la actual o una específica."
]
}]
}]