Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Control de versiones
 con Git y GitHub
            Raúl Murciano
      Desarrollador Web Freelance

      II Jornadas Cono...
Índice

•Control de versiones
• Git
• GitHub
Copyleft Vicente J. Ruiz Jurado
Creative Commons, atribución, comparte por igual.
CONOCIMIENTO LIBRE


  SOFTWARE LIBRE


HERRAMIENTAS LIBRES
EQUIPO
SOLO
Ventajas del Control de Versiones:
   Almacenamiento y Backup
Ventajas del Control de Versiones:
Control de Acceso mediante permisos
Ventajas del Control
   de Versiones:
  Deshacer
 ILIMITADO
Ventajas del Control
   de Versiones:
  Deshacer
 ILIMITADO
Ventajas del Control de Versiones:
      Mezclar aportaciones
   de distintos colaboradores
Ventajas del Control de Versiones:
Todos se mantienen sincronizados fácilmente
Ventajas del Control de Versiones:
       Histórico de Cambios


• Quién
• Qué
• Cuándo
• Para Qué
Ventajas del Control de Versiones:
      Versiones en paralelo
Copiar y Pegar archivos
 Practica1

 Practica1_enero_14_fulano
 Practica1_enero_14_final

 Practica1_enero_14_final_de_ver...
Batallita
Vocabulario Básico:


• “repositorio”: almacén de datos que guarda
  cada versión de nuestro proyecto, incluyendo
  los da...
Ejemplo: lista de la compra
            versión 0


             (vacía)




(vacía)                  (vacía)
Ejemplo: lista de la compra
              versión 0


               (vacía)




hamburguesa                (vacía)
Ejemplo: lista de la compra
               versión 0


              hamburguesa

     commit



hamburguesa              ...
Ejemplo: lista de la compra
               versión 1


              hamburguesa




hamburguesa                 hamburgue...
Ejemplo: lista de la compra
               versión 1


              hamburguesa




                            hamburgue...
Ejemplo: lista de la compra
              versión 2


              verdura

                          commit

           ...
Ejemplo: lista de la compra
              versión 2


              verdura




hamburguesa                verdura
  cerve...
Ejemplo: lista de la compra
                     versión 2

 intenta enviar un
commit pero no lo    verdura
   consigue: h...
Ejemplo: lista de la compra
                       versión 2
tiene que actualizar
  su versión local,
    resolver los    ...
Ejemplo: lista de la compra
               versión 2


               verdura



hamburguesa
  verdura                   v...
Ejemplo: lista de la compra
               versión 3

               verdura
     commit    cerveza



hamburguesa
  verdu...
Ejemplo: lista de la compra
El repositorio almacena todas las versiones y los cambios
                  (vacía)
 10:30    ...
Otro ejemplo:
              editor de textos
Planificación del desarrollo: se especifican las
primeras funcionalidades y se ...
Otro ejemplo:
    editor de textos


1    2       3         4
Otro ejemplo:
           editor de textos


1             2           3            4


                      Tag v0.1

   ...
Otro ejemplo:
              editor de textos

      1             2             3             4


                        ...
Otro ejemplo:
                 editor de textos
                                                 rama
                    ...
Otro ejemplo:
               editor de textos
                              4         5


1          2           3        ...
Toque final: permisos

• Normalmente los proyectos libres
  permiten que cualquiera pueda leer
  (descargar) el contenido d...
Integration Manager


     blessed
    repository




                        developer        developer
integration manag...
Integration Manager


     blessed
    repository          developer        developer
                          public    ...
Dictador/Tenientes

 dictator                                       blessed repository




                 lieutenant

li...
Dictador/Tenientes

 dictator                                        blessed repository




                 lieutenant

l...
Tipos de Sistemas de
   Control de Versiones

• Incrementales vs basados en snapshots
  (“instantáneas”)


• Centralizados...
(&         ()          (*         (+   (,



            !"#$%       !&                     !)
 !"#$%
&$'(%)"
            ...
(&         ()          (*         (+   (,



            !"#$%       !&                     !)
 !"#$%
&$'(%)"
            ...
Git es distribuido
      • Aunque se trabaje con un repositorio
          remoto, siempre se tiene uno en local

         ...
Git es distribuido
                                                         repositorio
  directorio local   área de cambi...
Git es distribuido
                                                          repositorio
   directorio local   área de cam...
Git es distribuido
                                                       repositorio
directorio local   área de cambios  ...
Git es distribuido
                                                         repositorio
directorio local   área de cambios...
Git es distribuido
                                                          repositorio
directorio local    área de cambi...
Git es distribuido
                                                          repositorio
 directorio local   área de cambi...
Git es distribuido
                                                         repositorio
directorio local   área de cambios...
Git es distribuido

repositorio local
   (privado)




  repositorio
    remoto
   (público)
Git-svn
                                                          repositorio
directorio local   área de cambios   reposit...
Git
•   Basado en instantáneas

•   Muy cómodo para trabajar con ramas

•   Distribuido

•   Popular: Gnome, Perl, Linux, ...
GitHub
• Acceso web a repositorios Git
• Gratuito para proyectos libres
• Antepasados similares: sourceforge,
  savannah, ...
GitHub
GitHub
GitHub
GitHub
GitHub
GitHub
•   mantenimiento cero: backups, disponibilidad
    (seguridad rep. privados)

•   acceso visual a los proyectos y ...
GitHub
Datos Febrero 2009:
- 47.000 repositorios públicos, 17.000 (36%)
creados el último mes
- 6.200 proyectos forkeados
...
Recursos
•   git-scm.com

•   gitready.com

•   gitcasts.com

•   book.git-scm.com

•   “Pragmatic Version using Git” Ed. ...
¿Preguntas?
Imágenes
[3] http://homes.ourproject.org/~vjrj/blog/2006/04/12/software-libre-una-mudanza-necesaria/

[5] http://www.flickr...
Control de versiones con Git y Github
Control de versiones con Git y Github
Upcoming SlideShare
Loading in …5
×

of

Control de versiones con Git y Github Slide 1 Control de versiones con Git y Github Slide 2 Control de versiones con Git y Github Slide 3 Control de versiones con Git y Github Slide 4 Control de versiones con Git y Github Slide 5 Control de versiones con Git y Github Slide 6 Control de versiones con Git y Github Slide 7 Control de versiones con Git y Github Slide 8 Control de versiones con Git y Github Slide 9 Control de versiones con Git y Github Slide 10 Control de versiones con Git y Github Slide 11 Control de versiones con Git y Github Slide 12 Control de versiones con Git y Github Slide 13 Control de versiones con Git y Github Slide 14 Control de versiones con Git y Github Slide 15 Control de versiones con Git y Github Slide 16 Control de versiones con Git y Github Slide 17 Control de versiones con Git y Github Slide 18 Control de versiones con Git y Github Slide 19 Control de versiones con Git y Github Slide 20 Control de versiones con Git y Github Slide 21 Control de versiones con Git y Github Slide 22 Control de versiones con Git y Github Slide 23 Control de versiones con Git y Github Slide 24 Control de versiones con Git y Github Slide 25 Control de versiones con Git y Github Slide 26 Control de versiones con Git y Github Slide 27 Control de versiones con Git y Github Slide 28 Control de versiones con Git y Github Slide 29 Control de versiones con Git y Github Slide 30 Control de versiones con Git y Github Slide 31 Control de versiones con Git y Github Slide 32 Control de versiones con Git y Github Slide 33 Control de versiones con Git y Github Slide 34 Control de versiones con Git y Github Slide 35 Control de versiones con Git y Github Slide 36 Control de versiones con Git y Github Slide 37 Control de versiones con Git y Github Slide 38 Control de versiones con Git y Github Slide 39 Control de versiones con Git y Github Slide 40 Control de versiones con Git y Github Slide 41 Control de versiones con Git y Github Slide 42 Control de versiones con Git y Github Slide 43 Control de versiones con Git y Github Slide 44 Control de versiones con Git y Github Slide 45 Control de versiones con Git y Github Slide 46 Control de versiones con Git y Github Slide 47 Control de versiones con Git y Github Slide 48 Control de versiones con Git y Github Slide 49 Control de versiones con Git y Github Slide 50 Control de versiones con Git y Github Slide 51 Control de versiones con Git y Github Slide 52 Control de versiones con Git y Github Slide 53 Control de versiones con Git y Github Slide 54 Control de versiones con Git y Github Slide 55 Control de versiones con Git y Github Slide 56 Control de versiones con Git y Github Slide 57 Control de versiones con Git y Github Slide 58 Control de versiones con Git y Github Slide 59 Control de versiones con Git y Github Slide 60 Control de versiones con Git y Github Slide 61 Control de versiones con Git y Github Slide 62 Control de versiones con Git y Github Slide 63 Control de versiones con Git y Github Slide 64 Control de versiones con Git y Github Slide 65 Control de versiones con Git y Github Slide 66 Control de versiones con Git y Github Slide 67
Upcoming SlideShare
Mini-tutorial de git
Next
Download to read offline and view in fullscreen.

10 Likes

Share

Download to read offline

Control de versiones con Git y Github

Download to read offline

Charla impartida durante las II Jornadas de Conocimiento Libre de la Universidad Europea de Madrid (primavera 2009)

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Control de versiones con Git y Github

  1. 1. Control de versiones con Git y GitHub Raúl Murciano Desarrollador Web Freelance II Jornadas Conocimiento Libre Universidad Europea de Madrid - GLUEM
  2. 2. Índice •Control de versiones • Git • GitHub
  3. 3. Copyleft Vicente J. Ruiz Jurado Creative Commons, atribución, comparte por igual.
  4. 4. CONOCIMIENTO LIBRE SOFTWARE LIBRE HERRAMIENTAS LIBRES
  5. 5. EQUIPO
  6. 6. SOLO
  7. 7. Ventajas del Control de Versiones: Almacenamiento y Backup
  8. 8. Ventajas del Control de Versiones: Control de Acceso mediante permisos
  9. 9. Ventajas del Control de Versiones: Deshacer ILIMITADO
  10. 10. Ventajas del Control de Versiones: Deshacer ILIMITADO
  11. 11. Ventajas del Control de Versiones: Mezclar aportaciones de distintos colaboradores
  12. 12. Ventajas del Control de Versiones: Todos se mantienen sincronizados fácilmente
  13. 13. Ventajas del Control de Versiones: Histórico de Cambios • Quién • Qué • Cuándo • Para Qué
  14. 14. Ventajas del Control de Versiones: Versiones en paralelo
  15. 15. Copiar y Pegar archivos Practica1 Practica1_enero_14_fulano Practica1_enero_14_final Practica1_enero_14_final_de_verdad NO es Control de Versiones
  16. 16. Batallita
  17. 17. Vocabulario Básico: • “repositorio”: almacén de datos que guarda cada versión de nuestro proyecto, incluyendo los datos asociados a cada commit • “commit”: cambio de una versión a otra
  18. 18. Ejemplo: lista de la compra versión 0 (vacía) (vacía) (vacía)
  19. 19. Ejemplo: lista de la compra versión 0 (vacía) hamburguesa (vacía)
  20. 20. Ejemplo: lista de la compra versión 0 hamburguesa commit hamburguesa (vacía)
  21. 21. Ejemplo: lista de la compra versión 1 hamburguesa hamburguesa hamburguesa
  22. 22. Ejemplo: lista de la compra versión 1 hamburguesa hamburguesa hamburguesa verdura
  23. 23. Ejemplo: lista de la compra versión 2 verdura commit hamburguesa hamburguesa verdura
  24. 24. Ejemplo: lista de la compra versión 2 verdura hamburguesa verdura cerveza
  25. 25. Ejemplo: lista de la compra versión 2 intenta enviar un commit pero no lo verdura consigue: hay conflictos hamburguesa verdura cerveza
  26. 26. Ejemplo: lista de la compra versión 2 tiene que actualizar su versión local, resolver los verdura conflictos y volver a enviar un nuevo commit hamburguesa verdura cerveza
  27. 27. Ejemplo: lista de la compra versión 2 verdura hamburguesa verdura verdura cerveza
  28. 28. Ejemplo: lista de la compra versión 3 verdura commit cerveza hamburguesa verdura verdura cerveza
  29. 29. Ejemplo: lista de la compra El repositorio almacena todas las versiones y los cambios (vacía) 10:30 “Para cenar, hamburguesas...” hamburguesa “¿Con esa panza? ¡Más 10:35 verdura y menos grasa!” verdura “Al menos que sea con 10:40 una cervecita...” verdura cerveza
  30. 30. Otro ejemplo: editor de textos Planificación del desarrollo: se especifican las primeras funcionalidades y se priorizan. 1. Abrir/Guardar archivo 2. Edición 3. Copiar/Pegar 4. Formato negrita/cursiva/subrayado 5. ...
  31. 31. Otro ejemplo: editor de textos 1 2 3 4
  32. 32. Otro ejemplo: editor de textos 1 2 3 4 Tag v0.1 Se pueden etiquetar versiones concretas, para localizarlas fácilmente en la historia del repositorio.
  33. 33. Otro ejemplo: editor de textos 1 2 3 4 Tag v0.1 ¿Qué ocurre si mientras estamos desarrollando la funcionalidad 4 se descubre un bug en alguna de las anteriores?
  34. 34. Otro ejemplo: editor de textos rama 4 desarrollo rama 1 2 3 3a producción Tag v0.1 Tag v0.1.1 Para evitar esto se suele trabajar en “ramas”
  35. 35. Otro ejemplo: editor de textos 4 5 1 2 3 3a 6 Tag v0.1 Tag v0.1.1 Tag v0.2 Cuando la rama de desarrollo sea estable la fusionaremos con la de producción
  36. 36. Toque final: permisos • Normalmente los proyectos libres permiten que cualquiera pueda leer (descargar) el contenido del repositorio • ...pero no escribir. Para contribuir hay que enviar parches que serán aplicados por el equipo de desarrollo oficial • Si alguien aporta muchos parches se le termina dando permiso de escritura
  37. 37. Integration Manager blessed repository developer developer integration manager private private Scott Chacon, Scotland on Rails Mar’09
  38. 38. Integration Manager blessed repository developer developer public public developer developer integration manager private private Scott Chacon, Scotland on Rails Mar’09
  39. 39. Dictador/Tenientes dictator blessed repository lieutenant lieutenant developer developer developer developer Scott Chacon, Scotland on Rails Mar’09
  40. 40. Dictador/Tenientes dictator blessed repository lieutenant lieutenant developer developer developer developer Scott Chacon, Scotland on Rails Mar’09
  41. 41. Tipos de Sistemas de Control de Versiones • Incrementales vs basados en snapshots (“instantáneas”) • Centralizados vs Distribuidos
  42. 42. (& () (* (+ (, !"#$% !& !) !"#$% &$'(%)" !"#$' !& !) !"#$( !& !) !* (& () (* (+ (, &*%+&,'$ % %& %& %) %) &$'(%)" ' ' ' '& ') ( (& () () (* Scott Chacon, Scotland on Rails Mar’09
  43. 43. (& () (* (+ (, !"#$% !& !) !"#$% &$'(%)" !"#$' !& !) !"#$( !& !) !* (& () (* (+ (, &*%+&,'$ % %& %& %) %) &$'(%)" ' ' ' '& ') ( (& () () (* Scott Chacon, Scotland on Rails Mar’09
  44. 44. Git es distribuido • Aunque se trabaje con un repositorio remoto, siempre se tiene uno en local repositorio directorio local área de cambios repositorio remoto de trabajo (“staging”) local (privado) (público)
  45. 45. Git es distribuido repositorio directorio local área de cambios repositorio remoto de trabajo (“staging”) local (privado) (público) En el dir. local se programan nuevas funcionalidades, se corrigen errores, etc
  46. 46. Git es distribuido repositorio directorio local área de cambios repositorio remoto de trabajo (“staging”) local (privado) (público) Cuando se termina una funcionalidad se marcan los cambios que se quieren aplicar y quedan registrados en el área de cambios git status git add git rm
  47. 47. Git es distribuido repositorio directorio local área de cambios repositorio remoto de trabajo (“staging”) local (privado) (público) Para aplicar los cambios se envían al repositorio local. (Si hay conflictos Git nos echa una mano) git commit
  48. 48. Git es distribuido repositorio directorio local área de cambios repositorio local remoto de trabajo (“staging”) (privado) (público) En este punto Git es especialmente potente: permite reorganizar commits, agruparlos, ...
  49. 49. Git es distribuido repositorio directorio local área de cambios repositorio local remoto de trabajo (“staging”) (privado) (público) Se pueden enviar cambios al git pull repositorio público y mantener git push el local actualizado.
  50. 50. Git es distribuido repositorio directorio local área de cambios repositorio local remoto de trabajo (“staging”) (privado) (público) Casi siempre se trabaja en local: • mucho más rápido, • se puede trabajar offline, • todo colaborador tiene una copia local que sirve de backup • se puede replicar el proyecto completo de manera trivial
  51. 51. Git es distribuido repositorio directorio local área de cambios repositorio local remoto de trabajo (“staging”) (privado) (público) ramas ramas locales remotas Se pueden llevar ramas para el desarrollo en local, otras en remoto para manejar las versiones del programa, sincronizarlas entre sí....
  52. 52. Git es distribuido repositorio local (privado) repositorio remoto (público)
  53. 53. Git-svn repositorio directorio local área de cambios repositorio local remoto de trabajo (“staging”) (privado) (público) Git subversion
  54. 54. Git • Basado en instantáneas • Muy cómodo para trabajar con ramas • Distribuido • Popular: Gnome, Perl, Linux, Ruby on Rails... • Alternativas: subversion con git-svn, Mercurial • Potente (más difícil de aprender que svn) • Aún no hay un cliente gráfico para todo
  55. 55. GitHub • Acceso web a repositorios Git • Gratuito para proyectos libres • Antepasados similares: sourceforge, savannah, gforge • “Red social” para programadores, el código es la estrella
  56. 56. GitHub
  57. 57. GitHub
  58. 58. GitHub
  59. 59. GitHub
  60. 60. GitHub
  61. 61. GitHub • mantenimiento cero: backups, disponibilidad (seguridad rep. privados) • acceso visual a los proyectos y a los cambios • interacción con desarrolladores (consultar su trabajo, qué proyectos siguen, mensajería...) • interacción con proyectos (comentarios en los cambios, colaboración en los wikis, pull request...)
  62. 62. GitHub Datos Febrero 2009: - 47.000 repositorios públicos, 17.000 (36%) creados el último mes - 6.200 proyectos forkeados - 4.600 recibieron contribuciones desde forks - 18.000 proyectos con al menos un observador el 25% fue forkeado y recibió contribuciones - no sólo de software vive el hacker: documentación, diseño, música...
  63. 63. Recursos • git-scm.com • gitready.com • gitcasts.com • book.git-scm.com • “Pragmatic Version using Git” Ed. Pragmatic Programmers • “Pro Git” Ed. APress • github.com
  64. 64. ¿Preguntas?
  65. 65. Imágenes [3] http://homes.ourproject.org/~vjrj/blog/2006/04/12/software-libre-una-mudanza-necesaria/ [5] http://www.flickr.com/photos/wwworks/1384952210/ [6] http://www.flickr.com/photos/manel/303802658/ [7] http://www.flickr.com/photos/jm3/330155936/ [8] http://www.flickr.com/photos/jdelgama/3292355641/ [9] http://www.flickr.com/photos/patrigimeno/2061904821/ [11] http://apple.com [12] http://www.flickr.com/photos/darthkao/2407993334/ [13] http://www.flickr.com/photos/xanboozled/1325199806 [14] http://www.flickr.com/photos/knoizki/3271782221/ [15] http://www.flickr.com/photos/guille/8066414/ [17] http://www.flickr.com/photos/manel/303802658/ (modificada)
  • Jorge7A1

    Apr. 22, 2019
  • LionelTarazn

    Jan. 10, 2018
  • RubnSnchezRamrez

    Apr. 25, 2017
  • angel.contreras

    Jun. 27, 2014
  • arnoldobr

    Jun. 23, 2014
  • paredeslourdes

    May. 2, 2014
  • cachi

    Sep. 5, 2010
  • XR900Geopelia

    Sep. 3, 2010
  • Jemact

    Jun. 24, 2010
  • israelalcazar

    May. 2, 2010

Charla impartida durante las II Jornadas de Conocimiento Libre de la Universidad Europea de Madrid (primavera 2009)

Views

Total views

13,559

On Slideshare

0

From embeds

0

Number of embeds

2,438

Actions

Downloads

362

Shares

0

Comments

0

Likes

10

×