23
GIT Repositorio Distribuido Mariano Kfuri Agosto 2015

Introducción a git

Embed Size (px)

Citation preview

Page 1: Introducción a git

GITRepositorio Distribuido

Mariano Kfuri Agosto 2015

Page 2: Introducción a git

Agenda¿Qué es Git?Diferencia con SVN.Estados y áreas.Comandos básicos.Pull requestFlows.

Page 3: Introducción a git

¿Qué es Git?Sistema distribuido de control de

versiones.Operaciones son locales.Cada commits es un SNAPSHOT. El repositorio es un conjunto de

SNAPSHOTCada SNAPSHOT es un repositorio

completoTiene integridad de datos.

Cada SNAPSHOT se identifica con un checksum

Control de versión mediante 3 áreas.Working directoryStaging areaGit directory (repositorio)

Page 4: Introducción a git

Diferencias con SVNSistema Centralizado de control de

versiones.Cada commits guarda la diferencias

entre cada revisión.Permite editar archivos offline pero

todas las operaciones son onlineRiesgo de perder datos en caso de

falla del server.

Page 5: Introducción a git

Diferencias con SVN

SVN

GIT

Page 6: Introducción a git

Estados y ÁreasLos 3 estados:

CommittedModifiedStages

Las 3 áreas:Git directoryWorking directoryStaging area

Page 7: Introducción a git

Stash ÁreaPermite guardar los cambios realizados en working directory que uno no

quiere commitear.Se puede pensar como un “holding area”.Internamente es un branchCuando los cambios son guardados en “stash área” el working directory

vuelve a la revisión HEAD.Comandos:

git stash save name: Guarda los cambios.git stash list: Lista los cambios.git stash apply name: Aplica los cambios guardados.git stash pop: Aplica los cambios y los remueve de “stash área”.

Page 8: Introducción a git

Comandos Básicos: Setting...git init

Crea un repositorio nuevoCrea directorio .git que contiene toda la metadata del repositorio.

git cloneCopia un repositorio existente. La copia es completa.El repositorio copiado es un entorno completamente aislado del

originalDeja vinculado el repositorio local con el repositorio remoto “origin”

git configConfigura el repositorio tanto individual como global.

Page 9: Introducción a git

Comandos Básicos: Guardando...

git addAgrega los cambios desde el working directory a staging area.No modifica el repositorioSe debe llamar cada vez que se modifica un archivo

git commitCommits los cambios agregados al staging area.El snapshot pasa a git directory.

git commit --amendPermite alterar el último commit, tanto en comentarios como

en archivos del snapshot.

Page 10: Introducción a git

Comandos Básicos: Visualizando...

git statusVisualizar el estado del working directory y del staging area.No muestra información sobre git directory.

git logMuestra los snapshot commiteados dentro de git directory.Permite buscar y filtrar cambios.Sólo opera sobre git directory

Page 11: Introducción a git

Comandos Básicos: Revirtiendo...

git checkout3 funciones. Checkout archivos, commits o branchesCheckout archivos permite recuperar la versión de un archivo.Checkout commits permite recuperar un snapshot completo.Checkout branch permite cambiar de un branch a otro.

git revertRevierte un snapshot determinado.No elimina el snapshot de git directory, sino que agrega otro con el

cambio generado.Es seguro.

git resetElimina todos los snapshot de git directory hasta el commit deseado

git cleanElimina los archivos no trackeados por git.

Page 12: Introducción a git

Comandos Básicos: Revirtiendo...

Revert vs Reset

Page 13: Introducción a git

Comandos Básicos: Colaborando...

git remotePermite crear, ver y borrar conexiones con otros repositorios

git fetchImporta los commits de un repositorio remoto al local.No realiza cambios sobre el repositorio local.

git pullActualiza y mergea los cambios del repositorio remoto con el

local.Internamente es como hacer git fetch & git merge,

git pushExporta los commits locales hacia el repositorio remoto.

Page 14: Introducción a git

Comandos básicos: Branching...

git branchPermite crear, ver y eliminar branch.

git checkoutPermite cambiar de un branch a otro.

git mergePermite importar los cambios realizados en un branch en otro.

Page 15: Introducción a git

Pull requestNo es una herramienta de Git, sino que depende

de los proveedores. Github lo soporta.Mecanismo para informar al equipo que un

feature está completo y para ser mergeado.

Abre un canal de comunicación, revisión y discusión sobre la implementación.

Permite retener un merge.

Page 16: Introducción a git

FlowCentralized WorkflowFeature Branch WorkflowGitflow Workflow

Forking Workflow

Page 17: Introducción a git

Flow: Centralized Workflow

Misma estructura que usar SVN

Cada desarrollador tiene su repositorio local.

Ideal para migrar Bumex

Page 18: Introducción a git

Flow: Feature Branch Workflow

Extiende de centralized.

Por cada desarrollo nuevo, se crea un branch.

Siguiente paso para Bumex

Page 19: Introducción a git

Flow: Gitflow WorkflowDefine un modelo estricto de

branches.

Garantiza que la versión del master sea siempre igual a producción.

Bumex debe tender a este modelo.

Adoptarlo en los nuevos proyectos

Page 20: Introducción a git

Flow: Forking Workflow

Cada equipo tiene un server-side repository

Se necesita de un rol que realice los merge desde team server-side repository al central.

Da mayor seguridad

El equipo de Brasil podría trabajar bajo este esquema

Page 21: Introducción a git

Preguntas

Page 22: Introducción a git

BibliografíaDocumentación oficial Git. [https://git-scm.com/doc]Tutoriales de Atlassian. [https://www.atlassian.com/git/tutorials]Vincent Driessen blog. [

http://nvie.com/posts/a-successful-git-branching-model]Github helps [https://help.github.com]Git interactivo [https://try.github.io]Github training [

https://training.github.com/kit/courses/github-for-everyone.html]

Page 23: Introducción a git