2. Sistemas de
control de versiones
Gestionan los cambios realizados
sobre diversos elementos a lo
largo del tiempo.
3. Git
• Diseñado por Linus Torvalds para
Linux.
• Git: distribuido, rápido y
eficiente.
4.
5. Conceptos básicos
• Branches: ramas del repositorio.
• Commits: guardado de cambios.
• Merge: mezcla de los commits de
distintas ramas.
• Push/Pull: sincronización con el
repositorio remoto.
9. Workflow ideal
• Desarrollo en ramas de largo recorrido
(master/develop).
• Rama master para versiones estables.
• Ramas puntuales:
o features: nuevas funcionalidades.
o releases: para congelar una versión.
o fixes: corrección de bugs.
10. Desarrollo
• Nunca commits directos
sobre master.
• Develop estable
=> merge a master.
11. Features
• Nuevas features siempre
nacen de develop.
• Features finalizadas siempre
vuelven a develop y se borran.
12. Releases
• Nuevas releases siempre nacen de develop.
• Releases finalizadassiempre vuelven a
master y develop.
• Se congela la release
en un tag.
13. Fixes
• Fixes siempre nacen
de master.
• Fixes vuelven amaster y develop.
• Se genera unanueva versión.
23. Con clientes
• Periodo de desarrollo menos
prolongado.
• Cambios imprevistos.
• Entorno de pre-producción para el
cliente.
24. Nuestro workflow
• Desarrollo en ramas de largo recorrido
(master/staging).
• Rama master para entorno en producción.
• Rama staging para pre-producción.
• Ramas puntuales:
o features: nuevas funcionalidades.
o fixes: corrección de bugs.
25. Diferencias
• Nuevas features nacen de master.
• Features finalizadas se pasan a staging
para que las pruebe el cliente.
• Fixes vuelven a master y staging.
• Nunca commits directos en staging.
• Staging totalmente desechable.
35. Es útil
• Cuando tenemos algo a medias y
hay que hacer un cambio urgente.
• Cuando no estamos trabajando en
la rama adecuada.
• Para desechar rápido las últimas
modificaciones.
36. Organiza tu trabajo
• Crea siempre ramas puntuales para hacer
commits ¡Son gratis!
• Haz commits pequeños que abarquen lógica
común ¡También son gratis!
• Configura los merges con --no-ff,
aportan estructura, +info y salud.
50. el problema de rebase
No hagas rebase a commits que ya
estén distribuidos.
Podríamos crear una paradoja
espacio-temporal y que el
universo se plegara sobre sí
mismo.