Git workflow v2

56
Git Workflow trabajando en equipo

description

Versión 2 de la presentación de Git Workflow presentada el Miércoles 18 de Junio, 2014 @ Coworking Space

Transcript of Git workflow v2

Page 1: Git workflow  v2

Git Workflowtrabajando en equipo

Page 2: Git workflow  v2

Objetivos

● Aprender buenas practicas de Git.● Crear un ambiente de trabajo exitoso en

equipo.● Mitigar, identificar y solucionar problemas

que surjan en estos ambientes.

Page 3: Git workflow  v2

Sobre mi

● Ingeniero en Sistemas (UNAPEC)

● Msc. Electronic Commerce (University of Westminster)

● 1ra promoción Técnico en Multimedia (ITLA)

● 15 años de experiencia en el área web

René [email protected]@rene_olivo

Page 4: Git workflow  v2

Git Zen

Page 5: Git workflow  v2

Master es intocable*

Page 6: Git workflow  v2

Haz Commit regularmente

● Hacer commit por cambios, no por tiempo.

● Escribir un comentario relevante (short summary)

Page 7: Git workflow  v2

Dale cariño a git log

Page 8: Git workflow  v2

Dale cariño a git log

Page 9: Git workflow  v2

.gitignore

● Claves e información sensitiva.● Archivos auto-generados y de usuarios.● Compontentes externos

Page 10: Git workflow  v2

Tener cuidado conrebase, squash, --amend

● Desordenan los commits● Se pierde el sentido de progresión● Afecta el uso de herramientas como git

bisect

Page 11: Git workflow  v2

Trabajando en Equipo

Page 12: Git workflow  v2

Repositorio centralizado

Page 13: Git workflow  v2

Repositorio local

Page 14: Git workflow  v2

Repositorios Remotos

Github Bitbucket VPS

Page 15: Git workflow  v2

Interface Web

https://www.gitlab.com/

Page 16: Git workflow  v2

Workflows

Page 17: Git workflow  v2

Github FlowGit Flow

Page 18: Git workflow  v2

Github Flowhttp://scottchacon.com/2011/08/31/github-flow.html

Page 19: Git workflow  v2

Github flow

Page 20: Git workflow  v2

Repo

git init --bare repo

Page 21: Git workflow  v2

Repo

git clone //servidor/repo repo-andrea

Andrea

Page 22: Git workflow  v2

Repo

git statusgit add .git commit -m "commit inicial"

Andrea

back-end

front-end

ea3f127[head] master

Page 23: Git workflow  v2

Repo

git pull origin mastergit push origin master

Andrea

[head] master ea3f127

[head] master ea3f127

Page 24: Git workflow  v2

Repo

git branch dev/back-endgit checkout dev/back-end

Andrea

master ea3f127

[head] master ea3f127

[head] dev/back-end

Page 25: Git workflow  v2

Repo

git statusgit add .git commit -m "add back-end models"

Andrea

master ea3f127

[head] master ea3f127

[head] dev/back-end

back-end

front-end

● models

31c4f22

Page 26: Git workflow  v2

Repo

git statusgit add .git commit -m "add back-end views"

Andrea

master ea3f127

[head] master ea3f127

[head] dev/back-end

back-end

front-end

● models● views

31c4f22

b63ac84

Page 27: Git workflow  v2

Repo

git statusgit add .git commit -m "add back-end controllers"

Andrea

master ea3f127

[head] master ea3f127

[head] dev/back-end

back-end

front-end

● models● views● controllers

31c4f22

b63ac84

749df5d

Page 28: Git workflow  v2

Repo

git checkout mastergit merge dev/back-end

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Page 29: Git workflow  v2

Repo

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Bartolo

[head] dev/front-endmaster

ea3f127

353fd21

764ab41

fde35ac

Page 30: Git workflow  v2

Repo

git pull origin mastergit push origin master

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Bartolo

[head] dev/front-endmaster

ea3f127

353fd21

764ab41

fde35ac

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Page 31: Git workflow  v2

Repo

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Bartolo

dev/front-end

ea3f127

353fd21

764ab41

fde35ac

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

31c4f22

b63ac84

0b14a66

749df5d

[head] master

dev/front-end

Page 33: Git workflow  v2

Git Flow

Page 34: Git workflow  v2

Cuál elegir?

Git Flow● Productos con metas a mediano

plazo.

● Excelente para aprender todo lo que ofrece git.

Github Flow● Productos en constante cambio.

● Excelente para principiantes.

Page 35: Git workflow  v2

Rebase

Page 36: Git workflow  v2

BA C

Rebase Flow

Page 37: Git workflow  v2

Rebase log

Page 38: Git workflow  v2

Merge log

Page 39: Git workflow  v2

Trabajar conRecursos Compartidos

Bases de Datos y Archivos

Page 40: Git workflow  v2

Recurso Centralizado

Andrea Bartolo Carolina

Repo

Recurso

Page 41: Git workflow  v2

Recurso Descentralizado

Andrea Bartolo Carolina

Repo

Recurso Recurso Recurso

Page 42: Git workflow  v2

Recurso Versionado

Andrea

V1

Bartolo Carolina

V2

Repo

Page 43: Git workflow  v2

Merge Conflict

Page 44: Git workflow  v2

MASTER

Page 45: Git workflow  v2

DEV/CSS-JS

Page 46: Git workflow  v2

DEV/HTML

Page 47: Git workflow  v2

MASTER

Page 48: Git workflow  v2
Page 49: Git workflow  v2

Como evitar Merge Conflicts

● Evitar trabajar en el mismo archivo● Separar concernimientos● En caso de que sea necesario trabajar en el

mismo archivo coloquen placeholders (evitar)

Page 50: Git workflow  v2

kdiff3

Page 51: Git workflow  v2

Git Bisect

Page 52: Git workflow  v2

Git Bisect

git bisect startgit bisect good dev/front-end-menugit bisect bad master

Page 53: Git workflow  v2

Git Bisect

Bisecting: 2 revisions left to test after this (roughly 2 steps)

Page 54: Git workflow  v2

Git Bisect

git bisect good

Bisecting: 0 revisions left to test after this (roughly 1 step)

Page 55: Git workflow  v2

Git Bisect

git bisect bad< ... sha ... > is the first bad commit

Page 56: Git workflow  v2

Gracias