Introducción a la herramienta de control de versiones Git, casos de uso y posibles escenarios de trabajo. Por José antonio Jiménez Toro (@RooteandoBlog)
4. Escenarios Git
Conceptos
● Repositorio: directorio donde almacenamos los archivos , Git crea una estructura
propia(directorio .git) donde almacena commit,ramas,historial...etc.
- repositorio local: donde se crea una zona de trabajo para el usuario.
- repositorio remoto: se encuentra en un ordenador accesible por el repositorio local, se
utiliza para compartir código.
● Commit(git commit): comando para almacenar un estado en el repositorio. Cada commit
esta compuesto por.
– Un enlace al commit ancestro.
– Un mensaje para describir los cambios.
– Hash SHA1 que identifica al commit.
● Ramas: un apuntador a un determinado commit.
– master: rama que se crea por defecto en el repositorio local.
– remota: apunta a otra rama que se encuentra en otro repositorio.
BetaBeers 2013 J.A Jimenez Toro
5. Escenarios en Git
Trabajando con Git
Trabajo con ramas (desarrollo paralelo), rama estable, rama desarrollo y ramas
puntuales. En Git el coste de trabajar con ramas es muy bajo.
master
a4d4f fe58f 1258d
12485 b58f4 128d5
abc15 desarrollo
errorBD
Rama estable: solo almacena código estable, no se trabaja directamente en esta rama.
Rama desarrollo: donde se desarrolla código.
Rama puntual: de corto recorrido y para diversas tareas (errores, nuevas
funcionalidades, experimentos).
BetaBeers 2013 J.A Jimenez Toro
6. Escenarios en Git
Trabajando con Git
Filosofia de commit
● Realizar commit que engloben partes completas. Como una funcionalidad
nueva,arreglo de un error o añadir una nueva función.
● No introducir errores con los commit. Si he añadido una nueva función al código,
probar antes que funciona.
● Todos los commit deben tener un mensaje claro y breve del contenido de los
cambios.
BetaBeers 2013 J.A Jimenez Toro
7. Escenarios en Git
Trabajando con Git
● Repositorio remoto: Un servidor en Git donde alojamos nuestro código,un
desarrollador podra descargarse el código, trabajar en su repositorio local y subir los
cambios de nuevo al repositorio remoto.
clonar: si el desarrollador no tiene el código, debe descargse una copia del
repositorio remoto a su ordenador, la clonación implica la creación de un
repositorio local donde se descargara el código y una rama remota.
push: enviar los cambios producidos(commit) del repositorio local al remoto.
pull: actualiza los cambios introducidos en el repositorio remoto y los
integra(fusiona) con nuestra rama master.
fetch: actualiza los cambios pero no los integra a nuestra rama master, la
integración se debe realizar de forma manual.
● Bundle: nos permite guardar un repositorio o una parte a un fichero.
● Parches: son ficheros que almacenan uno o varios commit, en un formato que
puedea ser aplicado facilmente en un repositorio Git.
BetaBeers 2013 J.A Jimenez Toro
8. Escenarios en Git
Escenarios
Repositorio local
Zona de
Zona de trabajo preparación Repositorio local
(stage)
add commit
commit -a
Ventajas
- Fácil de crear y utilizar.
- Rápido.
Desventajas
- Todo el código esta en un solo repositorio.
- Compartir código
BetaBeers 2013 J.A Jimenez Toro
9. Escenario en Git
Escenarios
Centralizado (repositorio remoto)
Repositorio remoto
Repositorio local Repositorio local
Ventajas
- Fácil de compartir código.
- Disponibilidad.
- Tolerancia errores.
Desventajas
- No hay control del código que se sube.
- Sincronización de repositorio local y remoto.
BetaBeers 2013 J.A Jimenez Toro
10. Escenario en Git
Escenarios
Gestor de integración (integrador)
Repositorio remoto Desarrollador
Integrador Desarrollador
Ventajas
- Control de código.
Desventajas
- Complejidad
- Recursos
BetaBeers 2013 J.A Jimenez Toro
11. Escenario en Git
Dictador-tenientes
Escenarios
Dictador Repositorio
Teniente Teniente
Desarrollador Desarrollador Desarrollador
Ventajas
- Control de código.
- Organización.
Desventajas
- Complejidad, útil para proyectos muy grandes
BetaBeers 2013 J.A Jimenez Toro
12. Escenario en Git
Recursos
Página de Git: http://git-scm.com/
Pro Git: http://git-scm.com/book/es
Pequeña guía de Git: http://overapi.com/git
Git inmersión: http://gitimmersion.com
Curso interactivo de GitHub sobre Git http://try.github.com
Git Magic www-cs-students.stanford.edu/~blynn/gitmagic/intl/es
BetaBeers 2013 J.A Jimenez Toro
13. Escenario en Git
Herramientas
Git Flow: http://elweb.co/uncategorized/git-flow
Migración de Subversión a Git: http://subgit.com/
Cliente gráfico de Git, SmartGit: http://www.syntevo.com/smartgithg
GitHub: github.com
GitHub Enterprise: enterprise.github.com
Bitbucket: bitbucket.org
Gitorious: gitorious.org
GitLab: gitlab.org
Para diseñadores
Pixelapse: www.pixelapse.com
Timeline: http://www.pixelnovel.com/
Adobe Version Cue: www.adobe.com/products/creativesuite.html
LayerVault: www.layervault.com
BetaBeers 2013 J.A Jimenez Toro