SlideShare una empresa de Scribd logo
Análisis y Diseño
      de Software


Tema 1. Control de versiones

Carlos A. Iglesias <cif@gsi.dit.upm.es>

Departamento de Ingeniería de Sistemas Telemáticos
                            http://moodle.dit.upm.es
Leyenda
Teoría


Ejercicio práctico en el ordenador


Ampliación de conocimientos


Lectura / Vídeo / Podcast


Práctica libre / Experimentación



                     Control de versiones   2
¿Cómo comparten código...?
●   En una empresa
    cientos de
    programadores
    programando a la
    vez el mismo
    programa
●   Distribuidos por
    oficinas en todo el
    mundo
                          Control de versiones   3
¿Cómo comparten código...?
●   Programadores de
    código abierto
●    Distribuidos por
    todo el mundo




                        Control de versiones   4
¿Se mandan el código?




           Control de versiones   5
Más problemas
●   ¿Qué pasa si dos
    personas han
    cambiado el mismo
    código?¿cómo 'lo
    mezclan?
●    ¿Cómo te enteras de
    si alguien ha
    cambiado algo si
    están mil personas
    trabajando?
                           Control de versiones   6
Solución: control de
                  versiones
● Unsistema que gestiona un repositorio de
 código (remoto) donde los usuarios pueden
  –   Descargar el código del repositorio en su
      ordenador (checkout)
  –   Modificar el código en local, crear nuevos ficheros,
      y añadirlos al repositorio (commit)
  –   Si al añadir código hay conflictos (con otro
      usuario), el gestor combina el código si puede
  –   Cada vez que hacemos commit, se crea una
      versión, y podemos 'recuperar' versiones anteriores
  –   Podemos tener varias 'ramas', p.ej. para una
      versión y la siguiente, y combinarlas




                                             Control de versiones   7
Sistemas de Control de
             Versiones
● Centralizados
  –   Un repositorio central
  –   CVS, Subversion (SVN)
● Distribuidos
  –   Servidor 'con más autoridad' por convenio
  –   Cada 'checkout' es un repositorio
  –   Mercurial
  –   BitKeeper
  –   Bazaar
                                Control de versiones   8
Git
● 2005,Desarrollado por
 Linus Torvald para el
 kernel de Linux
● Según Linus, no es un
 sistema de control de
 versiones, sino un
 sistema de ficheros
 orientado a objeto
 versionable... pero se usa
 como control de versiones


                                Control de versiones   9
Git
●   Cada repositorio es completo (nos
    bajamos todos los ficheros)
●   Nos bajamos 'clonamos' un repositorio
    –   Al modificar / editar / añadir el código se añade
        a 'staging' / index
    –   Al confirmar los cambios los añadimos al
        repositorio
●   Git usa 'fotos' del repositorio

                                 Control de versiones       10
Proceso




    Control de versiones   11
Proceso
●    Clonamos un repositorio o
    iniciamos uno
    –   Los tenemos en el 'working
        directory'
● Editamos, añadimos ficheros y
 los añadimos a git (los tenemos
 también en index)
● Decidimos confirmar los
 cambios (commit) → pasan al
 repositorio (HEAD)
                                Control de versiones   12
Github
●   Es una forja para almacenar proyectos
●   Tiene componente social (seguir amigos,
    compartir código, etc.)
●   Lo vamos a utilizar para guardar el código
    proporcionado en las prácticas (en
    dirección asignatura → alumnos)



                           Control de versiones   13
Resumen
●   Es importante aprender a usar un sistema
    de control de versiones
●    Olvídate de 'numerar las versiones de un
    programa' (p.java, p1.java, …) → es más
    rápido usar control de versiones
●   Muy bien integrado en IDEs



                           Control de versiones   14

Más contenido relacionado

La actualidad más candente

Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
Jose Emilio Labra Gayo
 
Taller GitHub
Taller GitHubTaller GitHub
Taller GitHub
Roberto Rosa
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
Keopx
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Paradigma Digital
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
Adolfo Fitoria
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
Patxi Gortázar
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
Moisés Pérez Delgado
 
Introducción a git y git hub
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hub
Miguel Ascanio Gómez
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
Antonio Ognio
 
Versionamiento
VersionamientoVersionamiento
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
Aprende Git
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
Julio Silva
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
Juan Vladimir
 
Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
Tarea4 Juan Martinez Conceptos Basicos De Sistemas OperativosTarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
Juan
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
Daniel Salas Denegri
 
Conceptos Basicos De Sistemas Operativos
Conceptos Basicos De Sistemas OperativosConceptos Basicos De Sistemas Operativos
Conceptos Basicos De Sistemas Operativos
DBSEII
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
Edgardo Hames
 
Versionamiento de software
Versionamiento de softwareVersionamiento de software
Versionamiento de software
Erick Aguila Martínez
 
Linux containers
Linux containersLinux containers
Linux containers
Rodolfo Pilas
 
Git para no gitters
Git para no gittersGit para no gitters
Git para no gitters
Rojomorgan
 

La actualidad más candente (20)

Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
Taller GitHub
Taller GitHubTaller GitHub
Taller GitHub
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Introducción a git y git hub
Introducción a git y git hubIntroducción a git y git hub
Introducción a git y git hub
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
Versionamiento
VersionamientoVersionamiento
Versionamiento
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
Tarea4 Juan Martinez Conceptos Basicos De Sistemas OperativosTarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Conceptos Basicos De Sistemas Operativos
Conceptos Basicos De Sistemas OperativosConceptos Basicos De Sistemas Operativos
Conceptos Basicos De Sistemas Operativos
 
A Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle ManagementA Strategy for Container Lifecycle Management
A Strategy for Container Lifecycle Management
 
Versionamiento de software
Versionamiento de softwareVersionamiento de software
Versionamiento de software
 
Linux containers
Linux containersLinux containers
Linux containers
 
Git para no gitters
Git para no gittersGit para no gitters
Git para no gitters
 

Similar a Tema 1 Control de Versiones

[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
Eudris Cabrera
 
U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
Eric Quiñones
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
José Moreno
 
Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)
Fco Javier Lucena
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
Manuel Ceron
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
ssuser36d4d3
 
S14-DAW-2022S1.pptx
S14-DAW-2022S1.pptxS14-DAW-2022S1.pptx
S14-DAW-2022S1.pptx
Luis Fernando Aguas Bucheli
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
Eudris Cabrera
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
Hugo Gilmar Erazo
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
Mario Pérez Esteso
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
Daniel Cruz
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
Gastón Guillerón
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
gabrielpiccoli
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
ssuser3ff40a
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
DrPantera
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
GuadalupeLopezLeyva
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
Joan Sebastián Ramírez Pérez
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de Código
Jesus Castagnetto
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
Christian Rodriguez
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
InterGraphicDESIGNS
 

Similar a Tema 1 Control de Versiones (20)

[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
 
U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
S14-DAW-2022S1.pptx
S14-DAW-2022S1.pptxS14-DAW-2022S1.pptx
S14-DAW-2022S1.pptx
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Herramientas Ágiles para Desarrollo
Herramientas Ágiles para DesarrolloHerramientas Ágiles para Desarrollo
Herramientas Ágiles para Desarrollo
 
Herramientas agilesdesarrollo
Herramientas agilesdesarrolloHerramientas agilesdesarrollo
Herramientas agilesdesarrollo
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Introducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y gitIntroducción al desarrollo de software en comunidad con forja de software y git
Introducción al desarrollo de software en comunidad con forja de software y git
 
Guia01 control versiones
Guia01 control versionesGuia01 control versiones
Guia01 control versiones
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de Código
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 

Más de Carlos A. Iglesias

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
Carlos A. Iglesias
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
Carlos A. Iglesias
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
Carlos A. Iglesias
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
Carlos A. Iglesias
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
Carlos A. Iglesias
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
Carlos A. Iglesias
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
Carlos A. Iglesias
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
Carlos A. Iglesias
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
Carlos A. Iglesias
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
Carlos A. Iglesias
 
1 intro php
1 intro php1 intro php
1 intro php
Carlos A. Iglesias
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
Carlos A. Iglesias
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
Carlos A. Iglesias
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
Carlos A. Iglesias
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
Carlos A. Iglesias
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
Carlos A. Iglesias
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
Carlos A. Iglesias
 
Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
Carlos A. Iglesias
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
Carlos A. Iglesias
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
Carlos A. Iglesias
 

Más de Carlos A. Iglesias (20)

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.1 Introduccion Android
Tema 4.1 Introduccion AndroidTema 4.1 Introduccion Android
Tema 4.1 Introduccion Android
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
 
Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 

Último

Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
AbrahamCastillo42
 
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxLA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
pauca1501alvar
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
cbtechchihuahua
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
El uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidianaEl uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidiana
231458066
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
leia ereni
 
Uso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptxUso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptx
231485414
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdktrabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
KukiiSanchez
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
jgvanessa23
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
Paola De la Torre
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
larapalaciosmonzon28
 
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajasSlideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
AdrianaRengifo14
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
luiscohailatenazoa0
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
al050121024
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
codesiret
 

Último (20)

Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
Todo sobre la tarjeta de video (Bienvenidos a mi blog personal)
 
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptxLA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
LA GLOBALIZACIÓN RELACIONADA CON EL USO DE HERRAMIENTAS.pptx
 
Manual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputosManual de Soporte y mantenimiento de equipo de cómputos
Manual de Soporte y mantenimiento de equipo de cómputos
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
El uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidianaEl uso de las TIC's en la vida cotidiana
El uso de las TIC's en la vida cotidiana
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIAMONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
MONOGRAFIA memoria RAM.docx trabajo DE TECNOLOGIA
 
Uso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptxUso de las Tics en la vida cotidiana.pptx
Uso de las Tics en la vida cotidiana.pptx
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdktrabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
trabajo práctico kuikikiikkidfsmdklfskdnfklsdnfknsdk
 
El uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptxEl uso de las TIC en la vida cotidiana.pptx
El uso de las TIC en la vida cotidiana.pptx
 
Flows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos FeaturesFlows: Mejores Prácticas y Nuevos Features
Flows: Mejores Prácticas y Nuevos Features
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Presentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre bloggerPresentación de Tic en educación y sobre blogger
Presentación de Tic en educación y sobre blogger
 
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajasSlideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
Slideshare: definiciòn, registrarse, presentaciones, ventajas y desventajas
 
La Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docxLa Inteligencia Artificial en la actualidad.docx
La Inteligencia Artificial en la actualidad.docx
 
Second Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro TapiaSecond Life, informe de actividad del maestro Tapia
Second Life, informe de actividad del maestro Tapia
 
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
Infografia TCP/IP (Transmission Control Protocol/Internet Protocol)
 

Tema 1 Control de Versiones

  • 1. Análisis y Diseño de Software Tema 1. Control de versiones Carlos A. Iglesias <cif@gsi.dit.upm.es> Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  • 2. Leyenda Teoría Ejercicio práctico en el ordenador Ampliación de conocimientos Lectura / Vídeo / Podcast Práctica libre / Experimentación Control de versiones 2
  • 3. ¿Cómo comparten código...? ● En una empresa cientos de programadores programando a la vez el mismo programa ● Distribuidos por oficinas en todo el mundo Control de versiones 3
  • 4. ¿Cómo comparten código...? ● Programadores de código abierto ● Distribuidos por todo el mundo Control de versiones 4
  • 5. ¿Se mandan el código? Control de versiones 5
  • 6. Más problemas ● ¿Qué pasa si dos personas han cambiado el mismo código?¿cómo 'lo mezclan? ● ¿Cómo te enteras de si alguien ha cambiado algo si están mil personas trabajando? Control de versiones 6
  • 7. Solución: control de versiones ● Unsistema que gestiona un repositorio de código (remoto) donde los usuarios pueden – Descargar el código del repositorio en su ordenador (checkout) – Modificar el código en local, crear nuevos ficheros, y añadirlos al repositorio (commit) – Si al añadir código hay conflictos (con otro usuario), el gestor combina el código si puede – Cada vez que hacemos commit, se crea una versión, y podemos 'recuperar' versiones anteriores – Podemos tener varias 'ramas', p.ej. para una versión y la siguiente, y combinarlas Control de versiones 7
  • 8. Sistemas de Control de Versiones ● Centralizados – Un repositorio central – CVS, Subversion (SVN) ● Distribuidos – Servidor 'con más autoridad' por convenio – Cada 'checkout' es un repositorio – Mercurial – BitKeeper – Bazaar Control de versiones 8
  • 9. Git ● 2005,Desarrollado por Linus Torvald para el kernel de Linux ● Según Linus, no es un sistema de control de versiones, sino un sistema de ficheros orientado a objeto versionable... pero se usa como control de versiones Control de versiones 9
  • 10. Git ● Cada repositorio es completo (nos bajamos todos los ficheros) ● Nos bajamos 'clonamos' un repositorio – Al modificar / editar / añadir el código se añade a 'staging' / index – Al confirmar los cambios los añadimos al repositorio ● Git usa 'fotos' del repositorio Control de versiones 10
  • 11. Proceso Control de versiones 11
  • 12. Proceso ● Clonamos un repositorio o iniciamos uno – Los tenemos en el 'working directory' ● Editamos, añadimos ficheros y los añadimos a git (los tenemos también en index) ● Decidimos confirmar los cambios (commit) → pasan al repositorio (HEAD) Control de versiones 12
  • 13. Github ● Es una forja para almacenar proyectos ● Tiene componente social (seguir amigos, compartir código, etc.) ● Lo vamos a utilizar para guardar el código proporcionado en las prácticas (en dirección asignatura → alumnos) Control de versiones 13
  • 14. Resumen ● Es importante aprender a usar un sistema de control de versiones ● Olvídate de 'numerar las versiones de un programa' (p.java, p1.java, …) → es más rápido usar control de versiones ● Muy bien integrado en IDEs Control de versiones 14