Post on 28-May-2015
description
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 Flowhttp://nvie.com/posts/a-successful-git-branching-model/
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