Git workflow v2

Post on 28-May-2015

384 views 2 download

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

Git Workflowtrabajando en equipo

Objetivos

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

equipo.● Mitigar, identificar y solucionar problemas

que surjan en estos ambientes.

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é Olivorene@minet.com.do@rene_olivo

Git Zen

Master es intocable*

Haz Commit regularmente

● Hacer commit por cambios, no por tiempo.

● Escribir un comentario relevante (short summary)

Dale cariño a git log

Dale cariño a git log

.gitignore

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

Tener cuidado conrebase, squash, --amend

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

bisect

Trabajando en Equipo

Repositorio centralizado

Repositorio local

Repositorios Remotos

Github Bitbucket VPS

Interface Web

https://www.gitlab.com/

Workflows

Github FlowGit Flow

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

Github flow

Repo

git init --bare repo

Repo

git clone //servidor/repo repo-andrea

Andrea

Repo

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

Andrea

back-end

front-end

ea3f127[head] master

Repo

git pull origin mastergit push origin master

Andrea

[head] master ea3f127

[head] master ea3f127

Repo

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

Andrea

master ea3f127

[head] master ea3f127

[head] dev/back-end

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

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

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

Repo

git checkout mastergit merge dev/back-end

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Repo

Andrea

ea3f127

[head] master ea3f127

[head] dev/back-endmaster

31c4f22

b63ac84

749df5d

Bartolo

[head] dev/front-endmaster

ea3f127

353fd21

764ab41

fde35ac

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

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

Git Flow

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.

Rebase

BA C

Rebase Flow

Rebase log

Merge log

Trabajar conRecursos Compartidos

Bases de Datos y Archivos

Recurso Centralizado

Andrea Bartolo Carolina

Repo

Recurso

Recurso Descentralizado

Andrea Bartolo Carolina

Repo

Recurso Recurso Recurso

Recurso Versionado

Andrea

V1

Bartolo Carolina

V2

Repo

Merge Conflict

MASTER

DEV/CSS-JS

DEV/HTML

MASTER

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)

kdiff3

Git Bisect

Git Bisect

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

Git Bisect

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

Git Bisect

git bisect good

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

Git Bisect

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

Gracias