# i2flow: flujos de GIT en i2TIC
<!-- Put the link to this slide here so people can follow -->
slide: https://Aqui.ira.el.link
> Taller: https://hackmd.io/4VGrCeNpTriea5gEXHqMlA
---
Haremos un taller todos juntos.
Ten preparado tu portátil!
---
# Introducción :boy: Andrés
:clock1: 2 mins
- Gestión de las migraciones
- Prueba de funcionalidades que se encuentra en ramas separadas
# :bulb: Soluciones propuestas
---
## Ramas de mezcla
- ¿Para qué sirven?
- Cómo crearlas de forma manual
```bash
git checkout -b mix_branch
git merge branch1
git merge branch2
...
```
- Cómo crearlas de forma automática
```bash
i2cli create_mix_branch <branch1> ...
```
---
## Operaciones con las migraciones
:clock1: 10 mins
:boy: Andrés
- Cuando crearlas
- Cómo deshacerlas
---
## Redacción de los commits
:clock1: 10 mins
:boy: Ángel
:boy: Rubén
:boy: Txema
### Buenas prácticas al generar commits
#### ÁNGEL
- ¿Qué es y cuál es la finalidad de un commit?
- Qué es lo que se hace "mal" al hacer un commit
- Muestra visual de casos sin estructura
#### RUBÉN
- ¿Hay procedimientos que nos puedan ayudar a hacer mejor los commits?
-- Las convenciones que nos ayudan a estructurar nuestros commits:
- Karma Commits
- Convencional Commits -> Convención a utilizar
- ¿Cómo nos ayudan las convenciones?
- Estructura de la información:
-- Cabecera: Tipo, ámbito, descripción
-- Cuerpo: Detalle
-- Pie: Referencias (track number, responsable...)
#### TXEMA
- ¿Por qué debemos seguir una convención?
- VENTAJAS
-- Estructura uniforme
-- Visibilidad
-- Reutilizar cambios
-- Generación de CHANGELOG
- Posibles DESVENTAJAS
-- Curva de aprendizaje:
- Comparativa visual de casos con y sin convención
#### ÁNGEL - Utilities
- Herramientas que nos ayuden automatizar el proceso de creación de commits:
-- Commitizen: https://github.com/commitizen-tools/commitizen
-- Consejo de utilización de "git commit --amend"
RELEASE NOTES -> Por definir
Enriquecer las PR: Release Notes como resultado de las PR
Generación de cambios a nivel generar: CHANGELOG.md
squash vs merge en contexto Release Notes
Explicación de como utilizar "git squash"
---
## Uso de i2cli para automatizar
:boy: Andrés
- Nombrado de las ramas de mezcla
- Creación de tags
- Creación de release notes
---
# Práctica
- Usar como ejemplo un módulo pip alojado en nuestro servidor pip
---
### Thank you! :sheep:
{"metaMigratedAt":"2023-06-15T19:52:11.650Z","metaMigratedFrom":"YAML","title":"i2flow","breaks":true,"description":"Taller sobre la gestión de flujos de GIT en i2TIC","contributors":"[{\"id\":\"1ced4144-997b-4135-a3cf-a7fed3d33035\",\"add\":349,\"del\":373},{\"id\":\"5713ce7e-6298-4eea-a5f6-d354cb1e48a4\",\"add\":3095,\"del\":1929},{\"id\":\"93855254-5bcf-438a-b2d1-f9f805e036e4\",\"add\":2720,\"del\":1318}]"}