43
Nivel Samurai

Git nivel samurai

Embed Size (px)

Citation preview

Page 1: Git nivel samurai

Nivel Samurai

Page 2: Git nivel samurai

¡Hola!

• Sergio Gómez• Software Architect at • @pulsarin• linkedin.com/in/bedeveloper

Page 3: Git nivel samurai

Contenido• Básicos Git• Re-escribiendo la historia• Workflows• La comunidad OpenSource• Hacks

Page 4: Git nivel samurai

¿De qué va esto?

Page 5: Git nivel samurai

¿De qué va esto?

Page 6: Git nivel samurai

Básicos Git

Page 7: Git nivel samurai

Básicos Git

• Configúralo• Type less, be quicker• User & passwd? • Automatiza

Page 8: Git nivel samurai

~/.gitconfig[user]

name = Sergio Gomez

email = [email protected]

[core]

editor = vim

[push]

default = simple

Page 9: Git nivel samurai

aliasci = commit -v

st = status

co = checkout

br = branch

unstage = reset HEAD --

last = log -1 HEAD

bitch = push --no-verify

Page 10: Git nivel samurai

aliasci = commit -v

st = status

co = checkout

br = branch

unstage = reset HEAD --

last = log -1 HEAD

bitch = push --no-verify

Page 11: Git nivel samurai

aliaslgb = log --graph \

--pretty=format:'%Cred%h%Creset \

-%C(yellow)%d%Creset %s %Cgreen(%cr) \

%C(bold blue)<%an>%Creset%n' \

--abbrev-commit \

--date=relative \

--branches

Page 12: Git nivel samurai

alias

Page 13: Git nivel samurai

ssh & public key• ¿Contraseña en cada operación?• Múltiples usuarios• Entre repositorios• En el mismo repositorio

Page 14: Git nivel samurai

~/.ssh/config

Page 15: Git nivel samurai

Automatiza

• rebase• borrado de ramas

Page 16: Git nivel samurai

Re-escribiendo la historia

Page 17: Git nivel samurai

Re-escribiendo la historia

• git commit --amend

• git rebase -i $ref

• git cherry-pick $ref

• git push -f

Page 18: Git nivel samurai

Re-escribiendo la historia

Page 19: Git nivel samurai

Re-escribiendo la historia

Page 20: Git nivel samurai

Re-escribiendo la historia

Page 21: Git nivel samurai

Re-escribiendo la historia

Page 22: Git nivel samurai

Re-escribiendo la historia

Page 23: Git nivel samurai

Workflows

Page 24: Git nivel samurai

Workflows

• Centralizado• Funcionalidad por rama• Gitflow• Forking

Page 25: Git nivel samurai

Centralizado

• Mismo remoto para todos• Muchos conflictos• Poco versátil• Es el más sencillo

Page 26: Git nivel samurai

Rama por funcionalidad

• Pueden trabajar equipos en paralelo• Master siempre estable• Puedes decidir cuándo integras• Conflictos puntuales, pero más

grandes• Proyectos relativamente pequeños

Page 27: Git nivel samurai

Gitflow

• Estructura predefinida• Funciona bien en proyectos grandes• Separa cada rol específico en ramas• Máxima estabilidad

Page 28: Git nivel samurai

Gitflow

Page 29: Git nivel samurai

Forking

• Remoto por usuario• Tu repo, tus normas• Integraciones sin compartir

repositorio• Permite colaboraciones externas

Page 30: Git nivel samurai

OpenSource

Page 31: Git nivel samurai

Trabajando con la comunidad

• Forking y pull request

• Explícate• Sé concienzudo• Sé humilde, no es personal

Page 32: Git nivel samurai

“Hacks”

Page 33: Git nivel samurai

Usa hooks

• Automatiza• Validaciones previas• Acciones pre-push

• Notificaciones• …

Page 34: Git nivel samurai

Plantillas Pull Request

• Github las soporta, Bitbucket en proceso• Esqueleto con la info mínima• Estandariza la interacción con el

repositorio

Page 35: Git nivel samurai
Page 36: Git nivel samurai

Ignores temporales

• git update-index --assume-unchanged <file>

• git update-index --no-assume-unchanged <file>

Page 37: Git nivel samurai

Comandos interesantes

• git reflog• git prune• git stash• git bisect• git filter-branch• git submodule

Page 38: Git nivel samurai

¿Usas varios equipos?

• Dropbox :)

Page 39: Git nivel samurai
Page 40: Git nivel samurai

¿Dudas?

Page 41: Git nivel samurai

[email protected] ARE HIRING

@StratioBD

Page 42: Git nivel samurai

¡Gracias!@pulsarin

Page 43: Git nivel samurai