git workflow

52
Git Workflow trabajando en equipo

Upload: rene-olivo

Post on 05-Jul-2015

752 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Git workflow

Git Workflowtrabajando en equipo

Page 2: Git workflow

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

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

Git Zen

Page 5: Git workflow

Master es intocable*

Page 6: Git workflow

Haz Commit regularmente

● Hacer commit por cambios, no por tiempo.

● Escribir un comentario relevante (short summary)

Page 7: Git workflow

Dale cariño a git log

Page 8: Git workflow

Dale cariño a git log

Page 9: Git workflow

.gitignore

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

Page 10: Git workflow

Prohibido usar rebase, squash, --amend

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

bisect

Page 11: Git workflow

BA C

Rebase

Page 12: Git workflow

Trabajando en Equipo

Page 13: Git workflow

Repositorio centralizado

Page 14: Git workflow

Repositorio local

> git init --bare repo-principal

> git clone repo-principal repo-trabajo

Page 15: Git workflow

Repositorios Remotos

Github Bitbucket VPS

Page 16: Git workflow

Interface Web

https://www.gitlab.com/

Page 17: Git workflow

Workflows

Page 18: Git workflow

Github FlowGit Flow

Page 19: Git workflow

Git Flow

Page 20: Git workflow

Github flow

Page 21: Git workflow

Repo

git init --bare repo

Page 22: Git workflow

Repo

git clone //servidor/repo repo-andrea

Andrea

Page 23: Git workflow

Repo

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

Andrea

back-end

front-end

ea3f127[head] master

Page 24: Git workflow

Repo

git pull origin mastergit push origin master

Andrea

[head] master ea3f127

[head] master ea3f127

Page 25: Git workflow

Repo

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

Andrea

master ea3f127

[head] master ea3f127

[head] dev/back-end

Page 26: Git workflow

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 27: Git workflow

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 28: Git workflow

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 29: Git workflow

Repo

git checkout mastergit merge dev/back-end

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Page 30: Git workflow

Repo

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Bartolo

[head] dev/front-endmaster

ea3f127

353fd21

764ab41

fde35ac

Page 31: Git workflow

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 32: Git workflow

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

Resolución de Conflictos

Page 34: Git workflow

Problemas con Recursos Compartidos

Bases de Datos y Archivos

Page 35: Git workflow

Recurso Centralizado

Andrea Bartolo Carolina

Repo

Recurso

Page 36: Git workflow

Recurso Descentralizado

Andrea Bartolo Carolina

Repo

Recurso Recurso Recurso

Page 37: Git workflow

Recurso Versionado

Andrea

V1

Bartolo Carolina

V2

Repo

Page 38: Git workflow

Recurso Versionado por Git

Andrea Bartolo Carolina

Repo

Recurso Recurso Recurso

v1-uninstall.sqlv1-install.sql

v3-uninstall.sqlv3-install.sql

repositorio recurso

v2-uninstall.sqlv2-install.sql

Page 39: Git workflow

Merge Conflict

Page 40: Git workflow
Page 41: Git workflow
Page 42: Git workflow
Page 43: Git workflow
Page 44: Git workflow
Page 45: Git workflow

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 46: Git workflow

kdiff3

Page 47: Git workflow

Git Bisect

Page 48: Git workflow

Git Bisect

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

Page 49: Git workflow

Git Bisect

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

Page 50: Git workflow

Git Bisect

git bisect good

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

Page 51: Git workflow

Git Bisect

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

Page 52: Git workflow

Gracias