Curso git nivel medio

Configurar git

Añade tu nombre y correo electrónico a la configuración global de git. También puedes configurar el editor que prefieras (en este caso Visual Studio Code).

1git config --global user.name "XXX"
2git config --global user.email "XXX"
3git config --global core.editor "code --wait"
4
5git config --list

Clonar el repo

Como somos colaboradores, no hace falta forkear el repositorio

1git clone https://github.com/kant003/mini_apps.git
2cd mini_apps

Esto trae todas las ramas y sus últimas referencias desde el remoto, pero no las mezcla en el código local.

1git fetch --all
2git branch -a  # Así verán las ramas locales y remotas (remotes/origin/...).
3git remote -v

Politica de ramas

Git Flow simplificado, que es ideal para que los alumnos aprendan buenas prácticas.

  • master: siempre estable, es lo que ve el cliente, aqui guardamos las releases
  • develop: todas las features aprobadas del sprint
  • feature/UH-< número >-XXXX: una rama por cada historia de usuario o tarea tecnica

Descargar todas las ramas

1git switch master    # o  git checkout master
2# Trae los últimos cambios de la rama estable. Debe hacerse antes de sacar ramas nuevas, para no crear ramas a partir de código desactualizado.
3git pull origin master  
4git switch -c develop --track origin/develop  # si no existe localmente
5
6- # --track origin/develop → enlaza la rama local con la remota.
7# o, si ya existe la rama develop localmente:
8- # git switch develop && git pull origin develop

Desarrollar una feature (UH)

  • Elegir un issue del product backlog y lo movemos a la columna del TO DO
  • Nos asignamos como desarrolladores en esa issue
  • creamos la rama de trabajo desde develop
1git switch develop
2git pull --ff-only origin develop
3git switch -c feature/UH-12-xxxx

No ponemos a trabajar lanzando pequeños commits sobre esa feature (rama)

  • Un cambio = un commit
  • Usa conventionals commits
  • No olvides poner el Close #XXX para que la UH se cierre cuando se haga el merge
1git add .
2git commit

Sincronizamos la rama develop

para evitar la mayor parte de los conflictos esto actualiza la rama feature con los cambio en develop

1git fetch origin
2git rebase origin/develop       # preferiblemente rebase (esto nos va a generar un historial de commit mas limpio)
3# si hay conflictos se tienen que resolver
4  git add
5  git rebase --continue
6git push --force-with-lease

publicar tu rama (feature en develop)

1git push -u origin feature/UH-12-XXXX

Abrir una PR (pull request)

  • Alguno de tus compañeros la valida (aceptandola o rachazandola)
  • Seguir las normas de publicación de las PR

Aprobación

Cuando un compañero acepte la PR, realizará un merge Squash & Merge de la rama feature a la rama develp Y cerrará la Issue (normalmente de forma automática) Hay 3 formas

1- Create a merge commit 2- Squash and merge ( recomendado ) 3- Rebase and merge

Tras el merge

refrescamos develp

1git switch develop
2git pull origin develop

borramos la rama feature

1git brach -d feature/UH-12-XXXX
2git push origin --delete feature/UH-12-XXXX

No olvides de pasar la UH que estaba en TO DO a la columna DONE

Integración con Master

Cuando el sprint termina, tenemos que integrar la rama develop a master Hazlo con PR (mejor trazabilidad) o por CLI:

1git switch master
2git pull --ff-only origin master
3git merge --ff-only origin/develop   # o haz PR de develop→master
4git push origin master
1git tag -a v1.2.0 -m "release: v1.2.0"
2git push origin v1.2.0