Git with gifs

713 views

Published on

Rubén Sierra
Asturias
13 de Marzo de 2013

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
713
On SlideShare
0
From Embeds
0
Number of Embeds
127
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Git with gifs

  1. 1. with gifs
  2. 2. Sistemas de control de versionesGestionan los cambios realizados sobre diversos elementos a lo largo del tiempo.
  3. 3. Git• Diseñado por Linus Torvalds para Linux.• Git: distribuido, rápido y eficiente.
  4. 4. Conceptos básicos• Branches: ramas del repositorio.• Commits: guardado de cambios.• Merge: mezcla de los commits de distintas ramas.• Push/Pull: sincronización con el repositorio remoto.
  5. 5. No tenemos nadaen contra de SVN pero...
  6. 6. ...cuando un nuevo empleado dice que prefiere usar SVN antes que Git...
  7. 7. Workflow ideal• Desarrollo en ramas de largo recorrido (master/develop).• Rama master para versiones estables.• Ramas puntuales: o features: nuevas funcionalidades. o releases: para congelar una versión. o fixes: corrección de bugs.
  8. 8. Desarrollo• Nunca commits directos sobre master.• Develop estable => merge a master.
  9. 9. Features• Nuevas features siempre nacen de develop.• Features finalizadas siempre vuelven a develop y se borran.
  10. 10. Releases• Nuevas releases siempre nacen de develop.• Releases finalizadassiempre vuelven a master y develop.• Se congela la release en un tag.
  11. 11. Fixes• Fixes siempre nacen de master.• Fixes vuelven amaster y develop.• Se genera unanueva versión.
  12. 12. Siguiendo esto...
  13. 13. ...pero no siempre es aplicable.
  14. 14. Una mañana cualquiera enSimplelógica...
  15. 15. Tenemos marrones
  16. 16. Muchas veces nos gustaría...
  17. 17. Pero es nuestro trabajo...
  18. 18. Con clientes• Periodo de desarrollo menos prolongado.• Cambios imprevistos.• Entorno de pre-producción para el cliente.
  19. 19. Nuestro workflow• Desarrollo en ramas de largo recorrido (master/staging).• Rama master para entorno en producción.• Rama staging para pre-producción.• Ramas puntuales: o features: nuevas funcionalidades. o fixes: corrección de bugs.
  20. 20. Diferencias• Nuevas features nacen de master.• Features finalizadas se pasan a staging para que las pruebe el cliente.• Fixes vuelven a master y staging.• Nunca commits directos en staging.• Staging totalmente desechable.
  21. 21. Buenas prácticas
  22. 22. git stash• Almacena los cambios actuales en una pila independiente.• Te deja en el último commit.• Puede recuperarse más tarde.
  23. 23. Cuando lodescubres...
  24. 24. Cuando locontrolas...
  25. 25. Y para lo que loacabas usando...
  26. 26. Es útil• Cuando tenemos algo a medias y hay que hacer un cambio urgente.• Cuando no estamos trabajando en la rama adecuada.• Para desechar rápido las últimas modificaciones.
  27. 27. Organiza tu trabajo• Crea siempre ramas puntuales para hacer commits ¡Son gratis!• Haz commits pequeños que abarquen lógica común ¡También son gratis!• Configura los merges con --no-ff, aportan estructura, +info y salud.
  28. 28. Evitaráscosas como...
  29. 29. git blame• Indica el último autor de un cambio en una línea de código.• Permite culpar a otro cuando el código apesta.
  30. 30. Cuando alguienva a hacer un git blame...
  31. 31. ...si el autor es un compañero...
  32. 32. ...pero la mayoría de las veces...
  33. 33. git rebaseTambién permite mezclar ramas, pero reescribe la historia.
  34. 34. Mola pero...
  35. 35. el problema de rebaseNo hagas rebase a commits que ya estén distribuidos. Podríamos crear una paradoja espacio-temporal y que el universo se plegara sobre sí mismo.
  36. 36. Haz caso a Doc, sabe mucho del tiempo
  37. 37. pull y push• Configura el rebase por defectode pull (por una historia más bonita).• Haz pull siempre antes de push.
  38. 38. Evitaráscosas como...
  39. 39. Y siempre puedes cagarla...
  40. 40. Cuando todo se rompe • git reflog: rebusca • git reset: reinicia • git revert: deshaz
  41. 41. Seguramentetenga solución
  42. 42. ¡GRACIAS!
  43. 43. ¿Preguntas?
  44. 44. http://goo.gl/49vdf (Presentación)https://twitter.com/maguilag https://github.com/rsierra

×