git workflow

Post on 05-Jul-2015

753 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Prohibido usar rebase, squash, --amend

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

bisect

BA C

Rebase

Trabajando en Equipo

Repositorio centralizado

Repositorio local

> git init --bare repo-principal

> git clone repo-principal repo-trabajo

Repositorios Remotos

Github Bitbucket VPS

Interface Web

https://www.gitlab.com/

Workflows

Github FlowGit Flow

Git Flow

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

Resolución de Conflictos

Problemas con Recursos 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

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

Merge Conflict

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

top related