Práctica 1.4: GitHub Básico
P4 - Ramas, stash y GitHub¶
Partimos del repositorio local de P3. Una rama permite trabajar en una línea
separada y stash guarda temporalmente cambios sin confirmar. GitHub será el
remoto; la autenticación SSH se estudiará con detalle en P7.
1. Objetivos¶
- Crear, consultar, cambiar y fusionar ramas.
- Resolver un conflicto sencillo sin eliminar cambios a ciegas.
- Guardar y recuperar cambios con
stash. - Crear un remoto en GitHub y sincronizarlo con la rama
main.
2. Relación con RA1 y criterios de evaluación¶
Esta práctica apoya el RA1, sobre todo CE b y CE c, porque organiza el proyecto creado con el IDE. Git/GitHub son herramientas instrumentales y no se equiparan a criterios normativos adicionales.
3. Pasos a seguir¶
3.1. Trabajar con ramas¶
Consulta previamente la explicación de ramas en el libro de Git y de los procedimientos para ramificar y fusionar.

La imagen representa una línea principal y una línea de trabajo separada. En la
práctica, la rama desarrollo-ejercicios cumplirá ese papel antes de integrarse
en main.
- Comprueba que el árbol está limpio y crea una rama descriptiva:
En versiones antiguas de Git puedes usar git checkout -b
desarrollo-ejercicios; no uses checkout para descartar archivos.
2. Crea ejercicios1/prueba2.py:
numero1 = int(input("Dame un número: "))
numero2 = int(input("Dame otro número: "))
print(f"{numero1} + {numero2} = {numero1 + numero2}")
- Ejecuta, añade y confirma:
- Vuelve a
maincongit switch mainy comprueba que el archivo de la rama de desarrollo no aparece. Regresa congit switch desarrollo-ejercicios. Si tienes cambios sin confirmar y cambias de rama, Git puede llevar esos cambios al nuevo contexto si no entran en conflicto. Por eso debes consultargit statusy confirmar, guardar congit stasho descartar de forma consciente antes de cambiar de rama. - Fusiona la rama desde
main:
- Si aparece un conflicto, abre el archivo, decide qué contenido conservar y
elimina los marcadores
<<<<<<<,=======y>>>>>>>. Después:
Si prefieres cancelar una fusión antes de resolverla, usa git merge --abort.
No borres la rama hasta comprobar el resultado; entonces git branch -d
desarrollo-ejercicios es seguro porque ya se ha fusionado.
3.2. Guardar cambios con stash¶
- Modifica un archivo sin confirmarlo y comprueba
git status. - Guarda el cambio con un mensaje:
En versiones antiguas de Git también aparece git stash save "Cambio
provisional"; git stash push -m es la forma actual recomendada.
- Cambia de rama, realiza la tarea necesaria y vuelve a la rama original.
- Recupera el cambio.
applylo conserva en la lista;poplo aplica y lo elimina si todo va bien:
3.3. Conectar con GitHub¶
- Crea un repositorio vacío en GitHub. Usa un nombre
neutro como
prog-u1-practicay no incluyas contraseñas, tokens ni datos personales en el material entregado. - Añade el remoto con la URL de tu cuenta y repositorio:
- Publica
mainy establece el seguimiento:
-
Para incorporar cambios del remoto usa
git pull --rebase origin mainsolo cuando el equipo lo haya acordado; para empezar,git pull origin maines suficiente. Comprueba siempregit statusdespués. -
También puedes clonar el repositorio en otro equipo:
Después de clonar, git pull origin main descarga e integra los cambios
publicados. Antes de subir los tuyos, revisa git status, git diff y el
historial para no publicar archivos que no correspondan a la tarea.
4. Comprobaciones de finalización¶
maincontiene la fusión y la rama de trabajo aparece en el historial.- Has mostrado un
stashguardado y recuperado sin pérdida de cambios. git remote -vapunta a un repositorio de prueba propio.git push -u origin maintermina correctamente.
5. Ejercicios y entregables¶
- Crea una rama para mejorar un ejercicio de P2 y fusiónala en
main. - Provoca un conflicto controlado en una línea y resuélvelo documentando la decisión.
- Entrega el enlace al repositorio de prueba, el historial y capturas del
conflicto resuelto y del
stash.