Uso de Git: un caso real
Pablo González Doval
@dovaleac
Javier Matas de Haro
@jmatasdh
●Técnicas que utilizamos
○Explicaciones básicas a nuevos miembros
○Branch-per-feature
○Mantener el árbol ordenado
○Repositorio de Excels
●Períodos históricos
○Previo a producción
○Salida a producción
○Actualidad
origin real
origin
desactualizado
commits
locales
cambios sin
commitear
commit
push
pull
fetch
+ checkout, merge, rebase... + http://pcottle.github.io/learnGitBranching/
Branch per feature
dev
YUMP-121
YUMP-120
Mantener el árbol ordenado (1)
dev
YUMP-121
YUMP-120
dev
YUMP-120 YUMP-121
PR #1 PR #2
Mantener el árbol ordenado (2)
dev
YUMP-121 YUMP-120
dev
● Aceptar primer pull-request
● Actualizar ramas locales
● Posicionarse en rama YUMP-121
Mantener el árbol ordenado (3)
dev
YUMP-121 YUMP-120
dev
YUMP-121
● git rebase dev
Mantener el árbol ordenado (4)
YUMP-120
dev
YUMP-121
YUMP-121
● Nos posicionamos en la rama dev
Mantener el árbol ordenado (5)
YUMP-120
dev
YUMP-121YUMP-121
dev
● git merge --no-ff YUMP-121
Mantener el árbol ordenado (6)
YUMP-120
dev
YUMP-121
git merge --no-ff -m 'Merged YUMP-121 in dev (pull request #2)' YUMP-121
YUMP-121
dev
Mantener el árbol ordenado (7)
● Aprobamos el pull-request
● Denegamos la fusión en la rama
Rebaseo de Excels
● Cuando hay conflictos : <<<<<<<<<<<<<HEAD ------------
Commit>>>>>>>>>>>>>>>>>>
● ID, NOMBRE
1, Ju
2, Pedro
● ID, NOMBRE
1, Juan
2, Pedro
● ID, NOMBRE
1, Julio
2, Pedro
ID NOMBRE
1 Ju
2 Pedro
Rebaseo de Excels
● ID, NOMBRE
1, Ju<<<<<<<<<<<<<HEADan
------------
lio Commit>>>>>>>>>>>>>>>>>>
2, Pedro
Rebaseo de Excels
● No hay una alternativa fiable como repositorio de Excel/csv
● Creamos nuestro propio repositorio independiente del de back
Períodos históricos
● Previo a producción
● Salida a producción
● En producción
○ Tentativas y soluciones
Previo a producción
YUMP-120
YUMP-121
dev
BUG #122
YUMP-120YUMP-121
dev
BUG #122
PR #1
PR #2
Salida a producción
git commit
git stash
git fetch
git rebase origin/dev
git push origin dev
En producción
HOTFIX-122
dev
master
YUMP-121 YUMP-123
BUG-124
RELEASE v1.0
En producción
HOTFIX-122
dev
master
YUMP-121
YUMP-123
BUG-124
RELEASE v1.1
integración
En producción
Retos:
● Pruebas por feature en paralelo.
● Salida a producción lo antes posible.
Soluciones:
● git checkout integracion → git rebase dev
En producción
Retos:
● Pruebas por feature en paralelo.
● Salida a producción lo antes posible.
● Hotfixes y bugs de release que rompen la estructura.
Soluciones:
● git checkout integracion → git rebase dev
● git cherry-pick <SHA>
En producción
Retos:
● Pruebas por feature en paralelo.
● Salida a producción lo antes posible.
● Hotfixes y bugs de release que rompen la estructura.
● Pruebas fallidas, vuelta atrás.
Soluciones:
● git checkout integracion → git rebase dev
● git cherry-pick <SHA>
● git reset --hard <SHA>
HOTFIX-122
dev
master
YUMP-121 YUMP-123
BUG-124
RELEASE v1.1
integración
Release_v1.1
Gracias!!

Uso de git: un caso real