Práctica¶
Esta sección contiene ejercicios paso a paso. Cada uno es autocontenido: podés seguirlos en orden o saltar al que te interese.
Antes de empezar
Asegurate de tener Git instalado y configurado como vimos en Entorno de trabajo, y la conexión SSH con GitHub lista según Conexión SSH.
Ejercicio 1 · Primer commit¶
Objetivo: crear un repositorio local, hacer un cambio y confirmarlo. Duración estimada: 10 minutos.
Paso 1 · Crear la carpeta¶
Paso 2 · Inicializar Git¶
Deberías ver:
Paso 3 · Configurar la rama por defecto (opcional)¶
Si todavía no configuraste init.defaultBranch=main globalmente:
Paso 4 · Crear un archivo¶
Paso 5 · Ver el estado¶
Verás:
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
nothing added to commit but untracked files present (use "git add" to track)
Paso 6 · Agregar al staging¶
Paso 7 · Hacer el primer commit¶
Resultado esperado
Paso 8 · Ver el historial¶
Vas a ver tu primer commit con su hash corto.
Ejercicio 2 · Resolver un conflicto¶
Objetivo: simular un conflicto de merge y resolverlo a mano. Duración estimada: 15 minutos.
Paso 1 · Preparar el repositorio¶
mkdir conflicto-demo && cd conflicto-demo
git init && git checkout -b main
echo "Línea 1" > saludo.txt
echo "Línea 2" >> saludo.txt
git add saludo.txt
git commit -m ":sparkles: Versión inicial de saludo"
Paso 2 · Crear una rama con cambio¶
git switch -c feature/greeting
echo "Hola, mundo!" > saludo.txt
git commit -am ":sparkles: Saludo en español"
Paso 3 · Volver a main y hacer un cambio distinto¶
Paso 4 · Intentar el merge¶
Git no puede decidir qué versión del archivo conservar:
Auto-merging saludo.txt
CONFLICT (content): Merge conflict in saludo.txt
Automatic merge failed; fix conflicts and then commit the result.
Paso 5 · Inspeccionar el conflicto¶
Vas a ver los marcadores:
Paso 6 · Resolver a mano¶
Editá el archivo y dejá solo la versión que querés:
(En la vida real, probablemente querés mantener ambas líneas o elegir cuidadosamente.)
Paso 7 · Confirmar la resolución¶
Ejercicio 3 · Pull Request con code review¶
Objetivo: simular un flujo completo de colaboración en GitHub: crear una rama, hacer un cambio, abrir un PR, recibir feedback, aplicarlo y mergear. Duración estimada: 30 minutos.
Paso 1 · Crear el repositorio en GitHub¶
- Andá a github.com/new.
- Nombre:
practica-pr. - Tildá Add a README file.
- Clic en Create repository.
Paso 2 · Clonar y crear una rama¶
git clone git@github.com:TU_USUARIO/practica-pr.git
cd practica-pr
git switch -c docs/agregar-instalacion
Paso 3 · Hacer un cambio¶
Editá README.md y agregá una sección:
(Usá triple backtick en el archivo real.)
Paso 4 · Commitear y pushear¶
git add README.md
git commit -m ":books: Documentar instalación en README"
git push -u origin docs/agregar-instalacion
Paso 5 · Abrir el PR¶
- Andá a la URL que GitHub muestra tras el push.
- Clic en Compare & pull request.
- Título:
Documentar instalación en README. - Descripción: explicación de qué agregaste y por qué.
- Marcar como Draft.
- Clic en Create pull request.
Paso 6 · Recibir feedback¶
Imaginate que un revisor comenta:
"Falta mencionar los prerrequisitos (Node.js >= 18)."
Paso 7 · Aplicar el feedback¶
Editá README.md:
Commit y push:
El PR se actualiza automáticamente con el nuevo commit.
Paso 8 · Aprobar y mergear¶
- Marcar el PR como Ready for review.
- Aprobar (vos mismo en este ejercicio).
- Squash and merge.
- Eliminar la rama.
Ejercicio 4 · Configurar branch protection¶
Objetivo: aplicar reglas de protección a la rama main desde la
UI de GitHub. Duración estimada: 10 minutos.
Solo aplica a repositorios donde sos admin
Si es tu repo personal, perfecto. Si es de una organización, pedí acceso admin antes.
Paso 1 · Ir a Settings → Branches¶
github.com/TU_USUARIO/practica-pr/settings/branches
El primer paso es navegar al tab Settings del repositorio. En la captura siguiente, el tab está resaltado en naranja a la derecha del header del repo:

Imagen: Tab Settings en el header de un repositorio de GitHub.
Paso 2 · Agregar regla para main¶
- Clic en Add rule.
- Branch name pattern:
main. - Activá:
- ☑ Require a pull request before merging.
- ☑ Require approvals:
1. - ☑ Dismiss stale pull request approvals when new commits are pushed.
- ☑ Require linear history (sin merge commits).
- ☑ Do not allow force pushes.
- ☑ Do not allow deletions.
- Clic en Create.
Paso 3 · Probar que funciona¶
Deberías recibir un error:
Eso confirma que la protección funciona. Para hacer cambios en
main, ahora tenés que hacerlo vía Pull Request.
Recursos adicionales¶
- Git Official Tutorial.
- Oh My Git! — juego para aprender Git visualmente.
- Learn Git Branching — tutorial interactivo con visualizaciones.
- GitHub Skills — cursos oficiales cortos.
Próximo paso¶
Volvé al Inicio para repasar todo el material o explorar el Glosario.