SlideShare a Scribd company logo
1 of 90
Download to read offline
Spring Roo
      &
Spring Insight
 @federicojcdm

           14 de Octubre de 2010
¿Qué es Git?

 Fue diseñado por Linus Torvalds
 Git es un sistema de control de versiones distribuido. En oposición a
  un sistema de control de versiones centralizado, Git, da a cada
  programador una copia local del historial del desarrollo entero, y los
  cambios se propagan entre los repositorios locales.
 Git da un fuerte soporte al desarrollo no lineal, y, proporciona
  mecanismos simples y eficaces para la gestión y mezclado de
  ramas.
 Git permite trabajar con una menor dependencia del repositorio
  central, en comparación con sistemas de control de versiones como
  CVS o SVN.




                                                                     2
Distribuido vs Centralizado I

 En un sistema de control de versiones centralizado, como pueden
  ser CVS o SVN, el historial de versiones está alojado en el
  repositorio central. A partir de una copia local del repositorio no es
  posible reconstruir el repositorio de nuevo.
 En uno distribuido, como Git, cada copia local del repositorio,
  contiene el historial completo de versiones. Es posible montar un
  nuevo repositorio, sin pérdida alguna de información, a partir de
  cualquiera de las copias locales.
 En un sistema de control de versiones centralizado, la mayoría de
  las operaciones, incluida la gestión de versiones, requieren de
  conexión al repositorio central.
 En uno distribuido, un gran número de operaciones, incluido el
  control de versiones de los elementos, se puede realizar sin
  conexión con el repositorio central.



                                                                     3
Distribuido vs Centralizado II

 En un sistema de control de versiones centralizado, se facilitan las
  tareas administrativas a cambio de reducir flexibilidad, pues todas
  las decisiones fuertes (como crear una nueva rama) necesitan la
  aprobación del responsable.
 En uno distribuido no es necesario tomar decisiones
  centralizadamente.
 En sistemas de control de versiones centralizados como CVS o SVN,
  la creación, mergeado o gestión de ramas es algo muy dependiente
  del repositorio central, y, que es tratado como algo no habitual.
 En Git, la creación, mergeado o gestión de ramas, es algo que
  puede hacerse en caso de ser necesario sin ningún tipo de
  dependencia del repositorio central, y, es tratado como algo natural
  y habitual.




                                                                   4
Instalación de un cliente de Git

 Existen versiones del cliente Git para Windows, Mac OSX, y Linux
 El cliente puede ser descargado desde desde http://git-scm.com/
 Desde http://git-scm.com/ puede descargarse un .exe para Windows
 Desde http://git-scm.com/ puede descargarse un .dmg para Mac OSX
 Desde http://git-scm.com/ pueden descargarse los fuentes para Linux
 En las distintas distribuciones de Linux, suele existir un paquete
  precompilado del cliente de Git, así, por ejemplo, para instalar la
  versión precompilada del cliente Git en algunas distribuciones Linux,

         –   En Ubuntu: apt-get install git-core
                Ubuntu
         –   En Fedora: yum install git-core
                Fedora




                                                                      5
Manejo Básico Cliente Git I

 Creando un nuevo repositorio local de Git




 Añadiendo elemento al índice de Git




                                                      6
Manejo Básico Cliente Git II

 Comando status




 Realizando commit




                                             7
Manejo Básico Cliente Git III

 Consultando el historial de commit




 Consultando cambios realizados




                                                     8
Manejo Básico Cliente Git IV

 Volviendo a una versión anterior temporalmente




                                                   9
Manejo Básico Cliente Git V

 Regresando de una versión anterior




                                                   10
Manejo Básico Cliente Git VI

 Volviendo a una versión anterior definitivamente




                                                     11
Git en el servidor: Gitosis

 Gitosis es una herramienta que nos ofrece la posibilidad de
  controlar el acceso a los repositorios Git.
 Gitosis gestiona múltiples repositorios con una sola cuenta de
  usuario en el servidor, utilizando claves SSH para identificar a los
  usuarios.
 Con Gitosis, para los usuarios de los repositorios Git, no será
  necesario que tengan una cuenta de usuario en el servidor, sino
  que se gestionará el control de acceso de forma completamente
  transparente a ellos.
 Es de fácil instalación y configuración.
 Puede verse un ejemplo de instalación y configuración de Gitosis en
  la siguiente url,
   http://ymbra.com/es/blog/ramon/gestion-de-repositorios-git-con-
   gitosis


                                                                     12
Git en el servidor: GitHub

 GitHub (https://github.com/) es una alternativa de un tercero que
  permite gestionar proyectos Git.
 GitHub es gratuito para proyectos open source, y en esta
  modalidad, únicamente permite operar con repositorios públicos.
 GitHub permite operar con repositorios privados, pero, a través de
  cuentas de pago.
 GitHub es una alternativa interesante para aquellas empresas que
  quieran utilizar repositorios Git, sin tener que preocuparse de
  habilitar un servidor Git, administrarlo, gestionar backups,
  seguridad, …...




                                                                  13
Git en el servidor: Configuración GitHub

 Ir a https://github.com/
 Ir a la opción “Signup and Pricing”
 Ir a la opción “Create a free account”
 Rellenar datos
 Acceder




                                               14
Git en el servidor: Generación SSH keys

 Para la creación de un par de claves(clave pública/clave privada)
  SSH se seguirá el siguiente procedimiento,




                                                                  15
Git en el servidor: Acceso SSH GitHub

 Localizar en el sistema local la clave pública generada (id_rsa.pub)
 Acceder a la cuenta de GitHub
 Ir a opción “Account Settings”
 Seleccionar opción “SSH Keys”
 Añadir la clave pública (id_rsa.pub) mediante la opción “Add SSH
  Key”




                                                                   16
Git en el servidor: Creación de Repositorios

 Acceder a la cuenta de GitHub
 Seleccionar opción “New Repository”
 Completar datos del nuevo repositorio, y crear repositorio




                                                               17
Git en el servidor: Subir Repositorio a GitHub

 Copiar ruta del repositorio remoto que se obtuvo al crear el
  repositorio en GitHub.
 En el sistema local, sobre el repositorio Git, añadir la ruta del
  repositorio remoto de GitHub




 Subir cambios locales a repositorio remoto (push)




                                                                      18
Git en el servidor: Actualizar desde Repositorio

 Para realizar una actualización del repositorio local contra el repositorio remoto, no debe de haber cambios por
  commitear. Puede comprobarse si existen cambios por commitear, mediante la ejecución de “git status”.

 En caso de existir cambios por commitear, antes de realizar la actualización contra el repositorio remoto pueden
  tomarse dos acciones posibles


    –      Commitear los cambios pendientes
    –      Realizar “git stash”, que guardará los cambios desde el último commit en una pila para tal efecto, y, situará el
           estado del repositorio local en el del último commit que fue realizado. Con posterioridad a realizar la
           actualización desde el repositorio remoto, podrá ejecutarse “git pop”, para realizar un merge entre lo que fue
           almacenado en la pila, y, lo que ha sido actualizado desde el repositorio remoto.


 Para realizar la actualización desde el repositorio remoto,




   que realizará un merge entre la versión del repositorio local, y, la versión del repositorio remoto. En caso de existir
   conflictos en el merge, Git tratará de resolverlos automáticamente, si no puede resolverlos automáticamente informará
   de ello, para que sean resueltos manualmente.




                                                                                                                     19
Git en el servidor: Clonado de Repositorios

 Acceder a la cuenta de GitHub
 Obtener la url SSH del repositorio remoto a clonar




 Realizar clonado del repositorio remoto en sistema local




                                                             20
Git en el servidor: Otros protocolos en GitHub I

 Accediendo al repositorio GitHub por https




                                               21
Git en el servidor: Otros protocolos en GitHub II

 Accediendo al repositorio GitHub read-only




                                               22
Gestión de Branch con Git I

 Un proyecto puede ser branched o bifurcado en un instante de
  tiempo de forma que, desde ese momento en adelante, dos copias
  de los ficheros de ese proyecto puedan ser desarrolladas a
  diferentes velocidades o de diferentes formas, de modo
  independiente. El proyecto tiene entonces 2 (o más) "ramas".
 La ventaja es que se puede hacer un "merge" de las modificaciones
  de ambas ramas, posibilitando la creación de "ramas de prueba"
  que contengan código para evaluación, si se decide que las
  modificaciones realizadas en la "rama de prueba" sean
  preservadas, se hace un "merge" con la rama principal, o entre dos
  ramas cualquiera.
 Cualquier repositorio de Git, al ser inicializado, crea
  automáticamente una rama por defecto, que recibe el nombre de
  rama master, y que suele ser usada como rama principal.




                                                                23
Gestión de Branch con Git II

 Listando los branches existentes,




 Creando un nuevo branch en el repositorio local,




 Cambiando al nuevo branch en el repositorio local,




                                                       24
Gestión de Branch con Git III

 Creando un nuevo branch en repositorio local, y, quedar situado en
  el nuevo branch




                                                                 25
Gestión de Branch con Git IV

 Realizando merge entre dos branch,




                                                  26
Gestión de Branch con Git V

 Subiendo branch del repositorio local al servidor,




                                                       27
Gestión de Branch con Git VI

 Borrando branches locales,




                                                  28
Gestión de Branch con Git VII

 Trayendo branches desde el servidor al repositorio local,




                                                              29
Gestión de Branch con Git VIII

 Borrando branches en el servidor,




                                                   30
egit: Creando un Repositorio Local I




                               31
egit: Creando un Repositorio Local II




                                32
egit: Creando un Repositorio Local III




                                 33
egit: Añadiendo Elementos al Índice de Git I




                                       34
egit: Añadiendo Elementos al Índice de Git II




                                        35
egit: Añadiendo Elementos al Índice de Git III




                                         36
egit: Añadiendo Elementos al Índice de Git IV




                                        37
egit: Haciendo commit I




                  38
egit: Haciendo commit II




                   39
egit: Mostrando Historia de un elemento I




                                    40
egit: Mostrando Historia de un elemento II




                                     41
egit: Ir a una versión anterior temporalmente




                                        42
egit: Regresando de una versión anterior




                                   43
egit: Ir a una versión anterior definitivamente




                                          44
egit: Configurando repositorio remoto I




                                  45
egit: Configurando repositorio remoto II




                                   46
egit: Configurando repositorio remoto III




                                    47
egit: Configurando repositorio remoto IV




                                   48
egit: Configurando repositorio remoto V




                                  49
egit: Configurando repositorio remoto VI




                                   50
egit: Subir cambios locales a repositorio remoto




                                           51
egit: Actualizando desde repositorio remoto




                                      52
egit: Clonado de repositorios I




                          53
egit: Clonado de repositorios II




                           54
egit: Clonado de repositorios III




                            55
egit: Clonado de repositorios IV




                           56
egit: Clonado de repositorios V




                          57
egit: Clonado de repositorios VI




                           58
egit: Creando nuevo Branch I




                       59
egit: Creando nuevo Branch II




                        60
egit: Creando nuevo Branch III




                         61
egit: Realizando merge entre dos ramas I




                                   62
egit: Realizando merge entre dos ramas II




                                    63
egit: Realizando merge entre dos ramas III




                                     64
egit: Realizando merge entre dos ramas IV




                                    65
egit: Subiendo branch local al servidor I




                                    66
egit: Subiendo branch local al servidor II




                                     67
egit: Borrando branch local




                      68
egit: Trayendo branch del servidor a local I




                                       69
egit: Trayendo branch del servidor a local II




                                        70
egit: Trayendo branch del servidor a local III




                                         71
egit: Trayendo branch del servidor a local IV




                                        72
egit: Trayendo branch del servidor a local V




                                       73
egit: Borrando brach en el servidor I




                                74
Sistemas de Integración continua

 Metodología informática propuesta inicialmente por Martin Fowler.
 Consiste en hacer integraciones automáticas de un proyecto lo más
  a menudo posible para así poder detectar fallos cuanto antes.
 Se entiende por integración la compilación y ejecución de tests de
  todo un proyecto.




                                                                  75
Presentación Jenkins

 Jenkins es un software de Integración continua open source escrito
  en Java.
 Es un fork del proyecto Hudson.
 Jenkins corre en un servidor de aplicaciones.
 Soporta herramientas de control de versiones como CVS,
  Subversion, Git, Mercurial, Perforce y Clearcase.
 Puede ejecutar proyectos basados en Apache Ant y Apache Maven,
  así como scripts de shell y programas batch de Windows.
 Liberado bajo licencia MIT.




                                                                 76
Instalación de Jenkins

 Jenkins puede descargarse desde http://jenkins-ci.org/
 Instalar la aplicación jenkins.war en un servidor.
 Acceder consola de Jenkins




                                                           77
Configuración básica de Jenkins I

 Acceder opción administrar Jenkins/Configuración del sistema




                                                                 78
Configuración básica de Jenkins II

 Configurar seguridad




                                                 79
Configuración básica de Jenkins III

 Configurar JDK




                                                 80
Configuración básica de Jenkins IV

 Configurar Maven




                                                  81
Configuración básica de Jenkins V

 Configurar Mail




                                                82
Integración Jenkins – Git I

 Instalar plugin de Git




                                                  83
Integración Jenkins – Git II

 Configuración plugin de Git




                                                        84
Configuración tarea Jenkins I

 Crear nueva tarea




                                               85
Configuración tarea Jenkins II




                          86
Configuración tarea Jenkins III




                           87
Importancia del Testing en Integración continua

 Sin testing en nuestro proyecto, un sistema de integración continua
  únicamente probará que nuestro proyecto compila.
 A medida que añadimos pruebas unitarias/integración a nuestro
  proyecto, en cada compilación desde el sistema de integración
  continua se ejecutan la pruebas.
 Cuanto más pruebas unitarias/integración existan en nuestro
  proyecto, más eficaz es un sistema de integración continua, ya que
  será más sencillo que se detecten errores que se ha subido al
  repositorio.




                                                                  88
Emma

 Emma permite medir el grado de coverage que las pruebas
  unitarias/integración hacen a nuestro código.
 Emma nos muestra que partes del código y cuales no están
  cubiertas por nuestras pruebas unitarias/integración.
 Emma nos da una idea de la calidad del testing que estamos
  realizando.
 Existe un plugin de Emma que integra con Jenkins.
 Existe un plugin de Emma que integra con Eclipse: EclEmma.




                                                                89
Madrid
Avda. de Europa, 26 - Ática 5,  3ª Planta
       28224 Pozuelo de Alarcón

E-mail:     info@paradigmatecnologico.com
          Teléfono: +34 91 352 59 42
             Fax: +34 91 715 89 66

More Related Content

What's hot

Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividadesTerryJoss
 
Sistemas de información_agosto_2023.docx
Sistemas de información_agosto_2023.docxSistemas de información_agosto_2023.docx
Sistemas de información_agosto_2023.docxHernanPerez75
 
Tecnologia web
Tecnologia webTecnologia web
Tecnologia webMeli Vidal
 
Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9Toni Benitez
 
Microsoft solution framework (msf)
Microsoft solution framework (msf)Microsoft solution framework (msf)
Microsoft solution framework (msf)kalencl
 
PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREAlejandro Leon
 
7 Clase De Los Procesos De Negocio A Los Casos
7 Clase De Los Procesos De Negocio A Los Casos7 Clase De Los Procesos De Negocio A Los Casos
7 Clase De Los Procesos De Negocio A Los CasosJulio Pari
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
Arquitecturas cisc-y-risc
Arquitecturas cisc-y-riscArquitecturas cisc-y-risc
Arquitecturas cisc-y-riscDaniel Martinez
 
Caso de estudio
Caso de estudioCaso de estudio
Caso de estudioadrianjosv
 

What's hot (20)

CENTOS
CENTOSCENTOS
CENTOS
 
Expocion mac os
Expocion mac osExpocion mac os
Expocion mac os
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Subprocesamiento Mùltiple
Subprocesamiento MùltipleSubprocesamiento Mùltiple
Subprocesamiento Mùltiple
 
Diagrama de actividades
Diagrama de actividadesDiagrama de actividades
Diagrama de actividades
 
Sistemas de información_agosto_2023.docx
Sistemas de información_agosto_2023.docxSistemas de información_agosto_2023.docx
Sistemas de información_agosto_2023.docx
 
Tecnologia web
Tecnologia webTecnologia web
Tecnologia web
 
Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9Caso de-uso-1228271248231157-9
Caso de-uso-1228271248231157-9
 
Scrum
ScrumScrum
Scrum
 
Microsoft solution framework (msf)
Microsoft solution framework (msf)Microsoft solution framework (msf)
Microsoft solution framework (msf)
 
PROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWAREPROCESOS DE CALIDAD DE SOFTWARE
PROCESOS DE CALIDAD DE SOFTWARE
 
7 Clase De Los Procesos De Negocio A Los Casos
7 Clase De Los Procesos De Negocio A Los Casos7 Clase De Los Procesos De Negocio A Los Casos
7 Clase De Los Procesos De Negocio A Los Casos
 
Presentacion git
Presentacion gitPresentacion git
Presentacion git
 
Administración de memoria el linux
Administración de memoria el linuxAdministración de memoria el linux
Administración de memoria el linux
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Protocolo ipx
Protocolo ipxProtocolo ipx
Protocolo ipx
 
Arquitecturas cisc-y-risc
Arquitecturas cisc-y-riscArquitecturas cisc-y-risc
Arquitecturas cisc-y-risc
 
Caso de estudio
Caso de estudioCaso de estudio
Caso de estudio
 
Creación de Procesos en Android
Creación de Procesos en AndroidCreación de Procesos en Android
Creación de Procesos en Android
 
Conceptos basicos arquitectura de software
Conceptos basicos arquitectura de softwareConceptos basicos arquitectura de software
Conceptos basicos arquitectura de software
 

Viewers also liked

Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con JenkinsCésar Hernández
 
Ic maven jenkins_sonar
Ic maven jenkins_sonarIc maven jenkins_sonar
Ic maven jenkins_sonarRocío Muñoz
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for TestingCarlos Sanchez
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
 
Internship Altares - International business coordinator
Internship Altares - International business coordinatorInternship Altares - International business coordinator
Internship Altares - International business coordinatorMichel Monti
 
Presentación Jenkins
Presentación JenkinsPresentación Jenkins
Presentación Jenkinsleylyss
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompIrontec
 
Zookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsZookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsLeandro Lera Romero
 
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioaUrko Zurutuza
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015 César Hernández
 

Viewers also liked (20)

Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 
Ic maven jenkins_sonar
Ic maven jenkins_sonarIc maven jenkins_sonar
Ic maven jenkins_sonar
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Using Docker for Testing
Using Docker for TestingUsing Docker for Testing
Using Docker for Testing
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...
 
TV Abierta informe AFSCA
TV Abierta informe AFSCATV Abierta informe AFSCA
TV Abierta informe AFSCA
 
Mapa mental
Mapa mentalMapa mental
Mapa mental
 
1.4 diseno de_los_sistemas
1.4 diseno de_los_sistemas1.4 diseno de_los_sistemas
1.4 diseno de_los_sistemas
 
Internship Altares - International business coordinator
Internship Altares - International business coordinatorInternship Altares - International business coordinator
Internship Altares - International business coordinator
 
Presentación Jenkins
Presentación JenkinsPresentación Jenkins
Presentación Jenkins
 
Convergencia
ConvergenciaConvergencia
Convergencia
 
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + StompKaazing Gateway + Apache Active MQ + Javascript + Stomp
Kaazing Gateway + Apache Active MQ + Javascript + Stomp
 
Zookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale SystemsZookeeper: Wait-free Coordination for Internet-scale Systems
Zookeeper: Wait-free Coordination for Internet-scale Systems
 
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioa
 
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015 Mejorando la productividad en proyectos java EE con  CI y CD - OTN 2015
Mejorando la productividad en proyectos java EE con CI y CD - OTN 2015
 
Monitorización
MonitorizaciónMonitorización
Monitorización
 
Conferencia 2: El esquema
Conferencia 2: El esquemaConferencia 2: El esquema
Conferencia 2: El esquema
 
Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 

Similar to Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones

Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxfuenzalidarodrigo
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADDIEGOALBERTOENRIQUEZ4
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptxssuser3ff40a
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfMartinBonuccelli
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoAntonio Luque Bravo
 
GITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionadosGITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionadosyuri460292
 
Introducción al uso de git, el sistema de control de fuentes más molón.
Introducción al uso de git, el sistema de control de fuentes más molón. Introducción al uso de git, el sistema de control de fuentes más molón.
Introducción al uso de git, el sistema de control de fuentes más molón. Juan J. Merelo
 

Similar to Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones (20)

Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptxGuiaPrincipiantesGitHubrfuenzalidadev.pptx
GuiaPrincipiantesGitHubrfuenzalidadev.pptx
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDADTodo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
Todo sobre el mundo del GIT-INTEGRACION-CONCEPTOS-USABILIDAD
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Git y github
Git y githubGit y github
Git y github
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora BlancoPresentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
Presentación GitHub Antonio Luque Bravo y Miguel Ángel Zamora Blanco
 
Presentacion pc2 new
Presentacion pc2 newPresentacion pc2 new
Presentacion pc2 new
 
GITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionadosGITHUB control de versiones, para el manejo de repositorios versionados
GITHUB control de versiones, para el manejo de repositorios versionados
 
Introducción al uso de git, el sistema de control de fuentes más molón.
Introducción al uso de git, el sistema de control de fuentes más molón. Introducción al uso de git, el sistema de control de fuentes más molón.
Introducción al uso de git, el sistema de control de fuentes más molón.
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 

More from Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 

More from Paradigma Digital (20)

Ddd + ah + microservicios
Ddd + ah + microserviciosDdd + ah + microservicios
Ddd + ah + microservicios
 
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Have you met Istio?
Have you met Istio?Have you met Istio?
Have you met Istio?
 
Linkerd a fondo
Linkerd a fondoLinkerd a fondo
Linkerd a fondo
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 

Recently uploaded

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Recently uploaded (15)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones

  • 1. Spring Roo & Spring Insight @federicojcdm 14 de Octubre de 2010
  • 2. ¿Qué es Git?  Fue diseñado por Linus Torvalds  Git es un sistema de control de versiones distribuido. En oposición a un sistema de control de versiones centralizado, Git, da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales.  Git da un fuerte soporte al desarrollo no lineal, y, proporciona mecanismos simples y eficaces para la gestión y mezclado de ramas.  Git permite trabajar con una menor dependencia del repositorio central, en comparación con sistemas de control de versiones como CVS o SVN. 2
  • 3. Distribuido vs Centralizado I  En un sistema de control de versiones centralizado, como pueden ser CVS o SVN, el historial de versiones está alojado en el repositorio central. A partir de una copia local del repositorio no es posible reconstruir el repositorio de nuevo.  En uno distribuido, como Git, cada copia local del repositorio, contiene el historial completo de versiones. Es posible montar un nuevo repositorio, sin pérdida alguna de información, a partir de cualquiera de las copias locales.  En un sistema de control de versiones centralizado, la mayoría de las operaciones, incluida la gestión de versiones, requieren de conexión al repositorio central.  En uno distribuido, un gran número de operaciones, incluido el control de versiones de los elementos, se puede realizar sin conexión con el repositorio central. 3
  • 4. Distribuido vs Centralizado II  En un sistema de control de versiones centralizado, se facilitan las tareas administrativas a cambio de reducir flexibilidad, pues todas las decisiones fuertes (como crear una nueva rama) necesitan la aprobación del responsable.  En uno distribuido no es necesario tomar decisiones centralizadamente.  En sistemas de control de versiones centralizados como CVS o SVN, la creación, mergeado o gestión de ramas es algo muy dependiente del repositorio central, y, que es tratado como algo no habitual.  En Git, la creación, mergeado o gestión de ramas, es algo que puede hacerse en caso de ser necesario sin ningún tipo de dependencia del repositorio central, y, es tratado como algo natural y habitual. 4
  • 5. Instalación de un cliente de Git  Existen versiones del cliente Git para Windows, Mac OSX, y Linux  El cliente puede ser descargado desde desde http://git-scm.com/  Desde http://git-scm.com/ puede descargarse un .exe para Windows  Desde http://git-scm.com/ puede descargarse un .dmg para Mac OSX  Desde http://git-scm.com/ pueden descargarse los fuentes para Linux  En las distintas distribuciones de Linux, suele existir un paquete precompilado del cliente de Git, así, por ejemplo, para instalar la versión precompilada del cliente Git en algunas distribuciones Linux, – En Ubuntu: apt-get install git-core Ubuntu – En Fedora: yum install git-core Fedora 5
  • 6. Manejo Básico Cliente Git I  Creando un nuevo repositorio local de Git  Añadiendo elemento al índice de Git 6
  • 7. Manejo Básico Cliente Git II  Comando status  Realizando commit 7
  • 8. Manejo Básico Cliente Git III  Consultando el historial de commit  Consultando cambios realizados 8
  • 9. Manejo Básico Cliente Git IV  Volviendo a una versión anterior temporalmente 9
  • 10. Manejo Básico Cliente Git V  Regresando de una versión anterior 10
  • 11. Manejo Básico Cliente Git VI  Volviendo a una versión anterior definitivamente 11
  • 12. Git en el servidor: Gitosis  Gitosis es una herramienta que nos ofrece la posibilidad de controlar el acceso a los repositorios Git.  Gitosis gestiona múltiples repositorios con una sola cuenta de usuario en el servidor, utilizando claves SSH para identificar a los usuarios.  Con Gitosis, para los usuarios de los repositorios Git, no será necesario que tengan una cuenta de usuario en el servidor, sino que se gestionará el control de acceso de forma completamente transparente a ellos.  Es de fácil instalación y configuración.  Puede verse un ejemplo de instalación y configuración de Gitosis en la siguiente url, http://ymbra.com/es/blog/ramon/gestion-de-repositorios-git-con- gitosis 12
  • 13. Git en el servidor: GitHub  GitHub (https://github.com/) es una alternativa de un tercero que permite gestionar proyectos Git.  GitHub es gratuito para proyectos open source, y en esta modalidad, únicamente permite operar con repositorios públicos.  GitHub permite operar con repositorios privados, pero, a través de cuentas de pago.  GitHub es una alternativa interesante para aquellas empresas que quieran utilizar repositorios Git, sin tener que preocuparse de habilitar un servidor Git, administrarlo, gestionar backups, seguridad, …... 13
  • 14. Git en el servidor: Configuración GitHub  Ir a https://github.com/  Ir a la opción “Signup and Pricing”  Ir a la opción “Create a free account”  Rellenar datos  Acceder 14
  • 15. Git en el servidor: Generación SSH keys  Para la creación de un par de claves(clave pública/clave privada) SSH se seguirá el siguiente procedimiento, 15
  • 16. Git en el servidor: Acceso SSH GitHub  Localizar en el sistema local la clave pública generada (id_rsa.pub)  Acceder a la cuenta de GitHub  Ir a opción “Account Settings”  Seleccionar opción “SSH Keys”  Añadir la clave pública (id_rsa.pub) mediante la opción “Add SSH Key” 16
  • 17. Git en el servidor: Creación de Repositorios  Acceder a la cuenta de GitHub  Seleccionar opción “New Repository”  Completar datos del nuevo repositorio, y crear repositorio 17
  • 18. Git en el servidor: Subir Repositorio a GitHub  Copiar ruta del repositorio remoto que se obtuvo al crear el repositorio en GitHub.  En el sistema local, sobre el repositorio Git, añadir la ruta del repositorio remoto de GitHub  Subir cambios locales a repositorio remoto (push) 18
  • 19. Git en el servidor: Actualizar desde Repositorio  Para realizar una actualización del repositorio local contra el repositorio remoto, no debe de haber cambios por commitear. Puede comprobarse si existen cambios por commitear, mediante la ejecución de “git status”.  En caso de existir cambios por commitear, antes de realizar la actualización contra el repositorio remoto pueden tomarse dos acciones posibles – Commitear los cambios pendientes – Realizar “git stash”, que guardará los cambios desde el último commit en una pila para tal efecto, y, situará el estado del repositorio local en el del último commit que fue realizado. Con posterioridad a realizar la actualización desde el repositorio remoto, podrá ejecutarse “git pop”, para realizar un merge entre lo que fue almacenado en la pila, y, lo que ha sido actualizado desde el repositorio remoto.  Para realizar la actualización desde el repositorio remoto, que realizará un merge entre la versión del repositorio local, y, la versión del repositorio remoto. En caso de existir conflictos en el merge, Git tratará de resolverlos automáticamente, si no puede resolverlos automáticamente informará de ello, para que sean resueltos manualmente. 19
  • 20. Git en el servidor: Clonado de Repositorios  Acceder a la cuenta de GitHub  Obtener la url SSH del repositorio remoto a clonar  Realizar clonado del repositorio remoto en sistema local 20
  • 21. Git en el servidor: Otros protocolos en GitHub I  Accediendo al repositorio GitHub por https 21
  • 22. Git en el servidor: Otros protocolos en GitHub II  Accediendo al repositorio GitHub read-only 22
  • 23. Gestión de Branch con Git I  Un proyecto puede ser branched o bifurcado en un instante de tiempo de forma que, desde ese momento en adelante, dos copias de los ficheros de ese proyecto puedan ser desarrolladas a diferentes velocidades o de diferentes formas, de modo independiente. El proyecto tiene entonces 2 (o más) "ramas".  La ventaja es que se puede hacer un "merge" de las modificaciones de ambas ramas, posibilitando la creación de "ramas de prueba" que contengan código para evaluación, si se decide que las modificaciones realizadas en la "rama de prueba" sean preservadas, se hace un "merge" con la rama principal, o entre dos ramas cualquiera.  Cualquier repositorio de Git, al ser inicializado, crea automáticamente una rama por defecto, que recibe el nombre de rama master, y que suele ser usada como rama principal. 23
  • 24. Gestión de Branch con Git II  Listando los branches existentes,  Creando un nuevo branch en el repositorio local,  Cambiando al nuevo branch en el repositorio local, 24
  • 25. Gestión de Branch con Git III  Creando un nuevo branch en repositorio local, y, quedar situado en el nuevo branch 25
  • 26. Gestión de Branch con Git IV  Realizando merge entre dos branch, 26
  • 27. Gestión de Branch con Git V  Subiendo branch del repositorio local al servidor, 27
  • 28. Gestión de Branch con Git VI  Borrando branches locales, 28
  • 29. Gestión de Branch con Git VII  Trayendo branches desde el servidor al repositorio local, 29
  • 30. Gestión de Branch con Git VIII  Borrando branches en el servidor, 30
  • 31. egit: Creando un Repositorio Local I 31
  • 32. egit: Creando un Repositorio Local II 32
  • 33. egit: Creando un Repositorio Local III 33
  • 34. egit: Añadiendo Elementos al Índice de Git I 34
  • 35. egit: Añadiendo Elementos al Índice de Git II 35
  • 36. egit: Añadiendo Elementos al Índice de Git III 36
  • 37. egit: Añadiendo Elementos al Índice de Git IV 37
  • 40. egit: Mostrando Historia de un elemento I 40
  • 41. egit: Mostrando Historia de un elemento II 41
  • 42. egit: Ir a una versión anterior temporalmente 42
  • 43. egit: Regresando de una versión anterior 43
  • 44. egit: Ir a una versión anterior definitivamente 44
  • 51. egit: Subir cambios locales a repositorio remoto 51
  • 52. egit: Actualizando desde repositorio remoto 52
  • 53. egit: Clonado de repositorios I 53
  • 54. egit: Clonado de repositorios II 54
  • 55. egit: Clonado de repositorios III 55
  • 56. egit: Clonado de repositorios IV 56
  • 57. egit: Clonado de repositorios V 57
  • 58. egit: Clonado de repositorios VI 58
  • 59. egit: Creando nuevo Branch I 59
  • 60. egit: Creando nuevo Branch II 60
  • 61. egit: Creando nuevo Branch III 61
  • 62. egit: Realizando merge entre dos ramas I 62
  • 63. egit: Realizando merge entre dos ramas II 63
  • 64. egit: Realizando merge entre dos ramas III 64
  • 65. egit: Realizando merge entre dos ramas IV 65
  • 66. egit: Subiendo branch local al servidor I 66
  • 67. egit: Subiendo branch local al servidor II 67
  • 69. egit: Trayendo branch del servidor a local I 69
  • 70. egit: Trayendo branch del servidor a local II 70
  • 71. egit: Trayendo branch del servidor a local III 71
  • 72. egit: Trayendo branch del servidor a local IV 72
  • 73. egit: Trayendo branch del servidor a local V 73
  • 74. egit: Borrando brach en el servidor I 74
  • 75. Sistemas de Integración continua  Metodología informática propuesta inicialmente por Martin Fowler.  Consiste en hacer integraciones automáticas de un proyecto lo más a menudo posible para así poder detectar fallos cuanto antes.  Se entiende por integración la compilación y ejecución de tests de todo un proyecto. 75
  • 76. Presentación Jenkins  Jenkins es un software de Integración continua open source escrito en Java.  Es un fork del proyecto Hudson.  Jenkins corre en un servidor de aplicaciones.  Soporta herramientas de control de versiones como CVS, Subversion, Git, Mercurial, Perforce y Clearcase.  Puede ejecutar proyectos basados en Apache Ant y Apache Maven, así como scripts de shell y programas batch de Windows.  Liberado bajo licencia MIT. 76
  • 77. Instalación de Jenkins  Jenkins puede descargarse desde http://jenkins-ci.org/  Instalar la aplicación jenkins.war en un servidor.  Acceder consola de Jenkins 77
  • 78. Configuración básica de Jenkins I  Acceder opción administrar Jenkins/Configuración del sistema 78
  • 79. Configuración básica de Jenkins II  Configurar seguridad 79
  • 80. Configuración básica de Jenkins III  Configurar JDK 80
  • 81. Configuración básica de Jenkins IV  Configurar Maven 81
  • 82. Configuración básica de Jenkins V  Configurar Mail 82
  • 83. Integración Jenkins – Git I  Instalar plugin de Git 83
  • 84. Integración Jenkins – Git II  Configuración plugin de Git 84
  • 85. Configuración tarea Jenkins I  Crear nueva tarea 85
  • 88. Importancia del Testing en Integración continua  Sin testing en nuestro proyecto, un sistema de integración continua únicamente probará que nuestro proyecto compila.  A medida que añadimos pruebas unitarias/integración a nuestro proyecto, en cada compilación desde el sistema de integración continua se ejecutan la pruebas.  Cuanto más pruebas unitarias/integración existan en nuestro proyecto, más eficaz es un sistema de integración continua, ya que será más sencillo que se detecten errores que se ha subido al repositorio. 88
  • 89. Emma  Emma permite medir el grado de coverage que las pruebas unitarias/integración hacen a nuestro código.  Emma nos muestra que partes del código y cuales no están cubiertas por nuestras pruebas unitarias/integración.  Emma nos da una idea de la calidad del testing que estamos realizando.  Existe un plugin de Emma que integra con Jenkins.  Existe un plugin de Emma que integra con Eclipse: EclEmma. 89
  • 90. Madrid Avda. de Europa, 26 - Ática 5,  3ª Planta 28224 Pozuelo de Alarcón E-mail: info@paradigmatecnologico.com Teléfono: +34 91 352 59 42 Fax: +34 91 715 89 66