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