SlideShare uma empresa Scribd logo
1 de 33
GIT
Control de versiones
1. ¿Qué es el control de
      versiones?
¿Qué es el control de versiones?
●   Cuando escribimos un programa, nuestro código va
    evolucionando desde la nada hacia la solución final
●   En el camino pueden transcurrir días, semanas, meses,...
●   Es habitual que, durante ese proceso, queramos deshacer
    pasos ya realizados
●   Podría suceder que hay un error en el código generado en
    Febrero, y queramos volver a la versión de Enero
●   También es útil cuando el equipo de desarrollo lo integran
    más de una persona
●   Sin control de versiones, es muy difícil “fundir” el código
    escrito por dos o más programadores
●   Esta tarea, un software de control de versiones la realiza
    “sin pestañear”
Herramientas profesionales de
         control de versiones
●   En el mercado existen muchísimas herramientas de
    control de versiones:
        –   GIT
        –   Subversion (SVN)
        –   CVS
        –   ClearCase
        –   SourceSafe/SourceGear
        –   Team Foundation Server
        –   Mercurial
2. GIT: características
GIT: características
●   Distribuido
●   Gratuito
●   Opensource
●   Multiplataforma: linux, windows, mac,...
●   Se integra con eclipse: egit
●   EGit es la versión gráfica de git, que es de consola
3. Instalación de Git en
         eclipse
Instalación de EGit en eclipse
●   Desde eclipse/help/install new software:
Comprobar instalación OK
●   Para comprobar que todo ha ido bien, crea un nuevo
    proyecto en eclipse
●   En el explorador de proyectos, pulsa botón derecho sobre
    el nodo del proyecto, y deberá aparecerte una nueva
    entrada llamada Team
4. Ficheros que
queremos ignorar
.gitignore
●   En un proyecto de desarrollo de software es habitual
    descartar ciertos ficheros del control de versiones
●   Lo importante es nuestro código
●   Todo aquello que no pertenezca al código, podemos y
    debemos eliminarlo del control de versiones
        –   Los ficheros compilados
        –   ...
●   Para ello, generamos un fichero que llamamos .gitignore
    dentro de nuestro proyecto y lo completamos con los
    ficheros y directorios a ignorar
Ejemplo de .gitignore
●   Éste es el aspecto de mi fichero .gitignore:
5. Poner proyecto bajo
 control de versiones
Creamos nuestro proyecto
●   Creamos nuestro proyecto Java como lo hemos hecho
    siempre
●   Y le añadimos un primer fichero, por ejemplo Main.java
    con un simple Hola Mundo:
Poner proyecto en GIT
●   El primer paso es poner nuestro proyecto bajo control de
    versiones
●   Lo ideal es hacer esto al principio, justo en el momento de
    nacer nuestro proyecto
●   Aún así, podemos poner un proyecto ya avanzado bajo
    control de versiones
●   En la siguiente secuencia de imágenes se muestra cómo
    incorporar nuestro proyecto al control de versiones (pág.
    siguiente):
Poner proyecto en GIT: pasos
Nuestro proyecto está en GIT
●   Fíjate que en el explorador de proyectos, aparece un
    icono ? junto a cada componente
Primer commit
●   En Window/Show Víew/Other, seleccionamos
    Git/Git Staging
●   Seleccionamos todos los ficheros que figuran
    en Unstaged Changes y los arrastramos a
    Staged Changes
●   Escribimos un mensaje con el que
    recordaremos el paso que hemos dado, por
    ejemplo, “Primer commit”
Project explorer: cambian los
                iconos
●   Como vemos, ahora que ya hemos hecho un commit, los
    iconos cambian, pasan de un “?” a el clásico símbolo de
    base de datos
●   Así indica que estos ficheros y todos sus cambios están
    registrados por GIT




    Antes del commit                 Después del commit
6. Hacer cambios y
   subirlos a GIT
Cambiamos “Hola mundo” por
          “Adios mundo”
●   En nuestro fichero Main.java, cambiamos el saludo “Hola
    mundo por “Adios mundo”
●   Graba los cambios
●   En el explorador de proyectos, aparece un icono “>” junto
    a los elementos que se han modificado:
Cambiamos “Hola mundo” por
          “Adios mundo”
●   En la ventana Git Staging aparece el fichero Main.java
    como que tiene cambios
●   Lo arrastramos a Staged Changes
●   Añadimos un mensaje alusivo
●   Commit
7. Mostrar los cambios
¿Por qué es importante?
●   En ocasiones puede ser importante mostrar los cambios
    que han tenido lugar en un fichero
        –   qué líneas se han añadido
        –   qué líneas se han eliminado
        –   qué cambios se han introducido en una línea
        –   qué ficheros se han añadido
        –   qué ficheros se han eliminado
        –   quién hizo esos cambios
        –   ...
Mostrar historial de versiones
   ●   Sobre el nodo del proyecto/Team/Show in History:
Aquí están las 2 versiones
que tenemos de momento,
   una por cada commit

                                                     Ficheros modificados,
                                                     añadidos, eliminados,...
                                                         en esa versión




                          Mensaje que pusimos
                       a la hora de subir (commit)
                            nuestros cambios
8. Deshacer cambios
¿Por qué es importante?
●   Supón que has estado modificando tu proyecto durante
    varias horas, pero llegas a la conclusión de que estos
    cambios no te interesan
●   Has modificado varios ficheros
●   Has añadido nuevos
●   Has eliminado otros
●   Es muy difícil recordar exactamente qué cambios has
    hecho para poder revertir la situación manualmente
●   La opción de CTRL-Z se queda corta, porque son muchos
    los cambios
●   En Git podemos hacer un Hard reset, que vuelca sobre
    nuestra copia local lo que hay en GIT, es decir, la última
    versión del código anterior a nuestros cambios
Hard reset
●   Botón derecho sobre el nodo del proyecto/ Team/ Reset:
●   Listo, nos hemos descargado a nuestra copia local lo que
    tiene GIT
●   De esta manera descartamos
    nuestros cambios
9. Mostrar diferencias
¿Por qué es importante?
●   Supongamos que llevas varias horas (días, semanas,...)
    trabajando en el proyecto
●   Has incorporado nuevas funcionalidades que van bien
●   Sin embargo, hay un fichero que da problemas en esta
    nueva versión
●   ¿Qué he tocado aquí para que ahora falle?
Mostrar diferencias con copia
                 local
●   En la ventana del historial de versiones, seleccionamos el
    fichero que queremos comparar, botón derecho, comparar
    con copia de trabajo (o local)
Mostrar diferencias con copia
                 local
●   Nos abre una nueva ventana con las líneas que se han
    modificado, y dentro de ésta, exactamente qué
    modificaciones ha sufrido:
Mostrar diferencias con versión
                anterior
●   Igual manera podría interesarnos qué cambios han habido
    en un fichero en la última versión con respecto de la
    anterior
●   En el historial de versiones, en lugar de comparar con
    copia de trabajo, comparar con Ancestor:

Mais conteúdo relacionado

Mais procurados

PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
drsevilla
 

Mais procurados (20)

Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a Git
 
WorkShop: Introducción a GIT
WorkShop: Introducción a GITWorkShop: Introducción a GIT
WorkShop: Introducción a GIT
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
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
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
 
Un modelo exitoso para git
Un modelo exitoso para gitUn modelo exitoso para git
Un modelo exitoso para git
 
Uso practico de git
Uso practico de gitUso practico de git
Uso practico de git
 
Versionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativoVersionando proyectos con Git, desarrollo de software colaborativo
Versionando proyectos con Git, desarrollo de software colaborativo
 
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
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente? LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
LaTeX y Git: ¿Cómo controlar archivos de LaTeX eficientemente?
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 

Destaque (13)

Taller1
Taller1Taller1
Taller1
 
Análsis y requerimientos
Análsis y requerimientosAnálsis y requerimientos
Análsis y requerimientos
 
Presentacion
PresentacionPresentacion
Presentacion
 
Rc094 010d-git 2 - desconocido
Rc094 010d-git 2 - desconocidoRc094 010d-git 2 - desconocido
Rc094 010d-git 2 - desconocido
 
J unit4
J unit4J unit4
J unit4
 
Listas
ListasListas
Listas
 
Modulos
ModulosModulos
Modulos
 
Maven
MavenMaven
Maven
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Maven (EN ESPANOL)
Maven (EN ESPANOL)Maven (EN ESPANOL)
Maven (EN ESPANOL)
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Java desde cero maven
Java desde cero mavenJava desde cero maven
Java desde cero maven
 
Ic maven jenkins_sonar
Ic maven jenkins_sonarIc maven jenkins_sonar
Ic maven jenkins_sonar
 

Semelhante a Git: control de versiones

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
Antonio Luque Bravo
 

Semelhante a Git: control de versiones (20)

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
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
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
 
Git (i) fork - commit - pull - push
Git (i)   fork - commit - pull - pushGit (i)   fork - commit - pull - push
Git (i) fork - commit - pull - push
 
Git res baz ec - final
Git   res baz ec - finalGit   res baz ec - final
Git res baz ec - final
 
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
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Git.manual.usuario
Git.manual.usuarioGit.manual.usuario
Git.manual.usuario
 
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
 
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
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
U1 Control de versiones.pdf
U1 Control de versiones.pdfU1 Control de versiones.pdf
U1 Control de versiones.pdf
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 
Arquitectura de proyectos Drupal
Arquitectura de proyectos DrupalArquitectura de proyectos Drupal
Arquitectura de proyectos Drupal
 

Mais de Moisés Pérez Delgado

Conceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoConceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entorno
Moisés Pérez Delgado
 
Conceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoConceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entorno
Moisés Pérez Delgado
 

Mais de Moisés Pérez Delgado (20)

02 resistencias y condensadores
02 resistencias y condensadores02 resistencias y condensadores
02 resistencias y condensadores
 
02 croquis y canalizacion
02 croquis y canalizacion02 croquis y canalizacion
02 croquis y canalizacion
 
02 carcasa y fuente
02 carcasa y fuente02 carcasa y fuente
02 carcasa y fuente
 
03 circuitos en cc
03 circuitos en cc03 circuitos en cc
03 circuitos en cc
 
Conceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoConceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entorno
 
Conceptos básicos de electricidad
Conceptos básicos de electricidadConceptos básicos de electricidad
Conceptos básicos de electricidad
 
Conceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoConceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entorno
 
Naturales temas 01 al 04
Naturales   temas 01 al 04Naturales   temas 01 al 04
Naturales temas 01 al 04
 
Tema 02 elementos del medio natural
Tema 02   elementos del medio naturalTema 02   elementos del medio natural
Tema 02 elementos del medio natural
 
Naturales temas 05 al 07
Naturales   temas 05 al 07Naturales   temas 05 al 07
Naturales temas 05 al 07
 
Matemáticas: Temas 1 a 4
Matemáticas: Temas 1 a 4Matemáticas: Temas 1 a 4
Matemáticas: Temas 1 a 4
 
Tema 1. El planeta Tierra
Tema 1. El planeta TierraTema 1. El planeta Tierra
Tema 1. El planeta Tierra
 
La Tierra
La TierraLa Tierra
La Tierra
 
Cálculo de circuitos: Thévenin
Cálculo de circuitos: ThéveninCálculo de circuitos: Thévenin
Cálculo de circuitos: Thévenin
 
Teoría de circuitos: superposición
Teoría de circuitos: superposiciónTeoría de circuitos: superposición
Teoría de circuitos: superposición
 
Resolución de circuitos con Kirchoff
Resolución de circuitos con KirchoffResolución de circuitos con Kirchoff
Resolución de circuitos con Kirchoff
 
Corriente alterna
Corriente alternaCorriente alterna
Corriente alterna
 
Que sabes de electricidad
Que sabes de electricidadQue sabes de electricidad
Que sabes de electricidad
 
Qué sabes de word?
Qué sabes de word?Qué sabes de word?
Qué sabes de word?
 
AJAX y JS: Mini chat (fase 1)
AJAX y JS: Mini chat (fase 1)AJAX y JS: Mini chat (fase 1)
AJAX y JS: Mini chat (fase 1)
 

Último

NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 

Último (20)

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Diapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundariaDiapositivas de animales reptiles secundaria
Diapositivas de animales reptiles secundaria
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 

Git: control de versiones

  • 2. 1. ¿Qué es el control de versiones?
  • 3. ¿Qué es el control de versiones? ● Cuando escribimos un programa, nuestro código va evolucionando desde la nada hacia la solución final ● En el camino pueden transcurrir días, semanas, meses,... ● Es habitual que, durante ese proceso, queramos deshacer pasos ya realizados ● Podría suceder que hay un error en el código generado en Febrero, y queramos volver a la versión de Enero ● También es útil cuando el equipo de desarrollo lo integran más de una persona ● Sin control de versiones, es muy difícil “fundir” el código escrito por dos o más programadores ● Esta tarea, un software de control de versiones la realiza “sin pestañear”
  • 4. Herramientas profesionales de control de versiones ● En el mercado existen muchísimas herramientas de control de versiones: – GIT – Subversion (SVN) – CVS – ClearCase – SourceSafe/SourceGear – Team Foundation Server – Mercurial
  • 6. GIT: características ● Distribuido ● Gratuito ● Opensource ● Multiplataforma: linux, windows, mac,... ● Se integra con eclipse: egit ● EGit es la versión gráfica de git, que es de consola
  • 7. 3. Instalación de Git en eclipse
  • 8. Instalación de EGit en eclipse ● Desde eclipse/help/install new software:
  • 9. Comprobar instalación OK ● Para comprobar que todo ha ido bien, crea un nuevo proyecto en eclipse ● En el explorador de proyectos, pulsa botón derecho sobre el nodo del proyecto, y deberá aparecerte una nueva entrada llamada Team
  • 11. .gitignore ● En un proyecto de desarrollo de software es habitual descartar ciertos ficheros del control de versiones ● Lo importante es nuestro código ● Todo aquello que no pertenezca al código, podemos y debemos eliminarlo del control de versiones – Los ficheros compilados – ... ● Para ello, generamos un fichero que llamamos .gitignore dentro de nuestro proyecto y lo completamos con los ficheros y directorios a ignorar
  • 12. Ejemplo de .gitignore ● Éste es el aspecto de mi fichero .gitignore:
  • 13. 5. Poner proyecto bajo control de versiones
  • 14. Creamos nuestro proyecto ● Creamos nuestro proyecto Java como lo hemos hecho siempre ● Y le añadimos un primer fichero, por ejemplo Main.java con un simple Hola Mundo:
  • 15. Poner proyecto en GIT ● El primer paso es poner nuestro proyecto bajo control de versiones ● Lo ideal es hacer esto al principio, justo en el momento de nacer nuestro proyecto ● Aún así, podemos poner un proyecto ya avanzado bajo control de versiones ● En la siguiente secuencia de imágenes se muestra cómo incorporar nuestro proyecto al control de versiones (pág. siguiente):
  • 16. Poner proyecto en GIT: pasos
  • 17. Nuestro proyecto está en GIT ● Fíjate que en el explorador de proyectos, aparece un icono ? junto a cada componente
  • 18. Primer commit ● En Window/Show Víew/Other, seleccionamos Git/Git Staging ● Seleccionamos todos los ficheros que figuran en Unstaged Changes y los arrastramos a Staged Changes ● Escribimos un mensaje con el que recordaremos el paso que hemos dado, por ejemplo, “Primer commit”
  • 19. Project explorer: cambian los iconos ● Como vemos, ahora que ya hemos hecho un commit, los iconos cambian, pasan de un “?” a el clásico símbolo de base de datos ● Así indica que estos ficheros y todos sus cambios están registrados por GIT Antes del commit Después del commit
  • 20. 6. Hacer cambios y subirlos a GIT
  • 21. Cambiamos “Hola mundo” por “Adios mundo” ● En nuestro fichero Main.java, cambiamos el saludo “Hola mundo por “Adios mundo” ● Graba los cambios ● En el explorador de proyectos, aparece un icono “>” junto a los elementos que se han modificado:
  • 22. Cambiamos “Hola mundo” por “Adios mundo” ● En la ventana Git Staging aparece el fichero Main.java como que tiene cambios ● Lo arrastramos a Staged Changes ● Añadimos un mensaje alusivo ● Commit
  • 23. 7. Mostrar los cambios
  • 24. ¿Por qué es importante? ● En ocasiones puede ser importante mostrar los cambios que han tenido lugar en un fichero – qué líneas se han añadido – qué líneas se han eliminado – qué cambios se han introducido en una línea – qué ficheros se han añadido – qué ficheros se han eliminado – quién hizo esos cambios – ...
  • 25. Mostrar historial de versiones ● Sobre el nodo del proyecto/Team/Show in History: Aquí están las 2 versiones que tenemos de momento, una por cada commit Ficheros modificados, añadidos, eliminados,... en esa versión Mensaje que pusimos a la hora de subir (commit) nuestros cambios
  • 27. ¿Por qué es importante? ● Supón que has estado modificando tu proyecto durante varias horas, pero llegas a la conclusión de que estos cambios no te interesan ● Has modificado varios ficheros ● Has añadido nuevos ● Has eliminado otros ● Es muy difícil recordar exactamente qué cambios has hecho para poder revertir la situación manualmente ● La opción de CTRL-Z se queda corta, porque son muchos los cambios ● En Git podemos hacer un Hard reset, que vuelca sobre nuestra copia local lo que hay en GIT, es decir, la última versión del código anterior a nuestros cambios
  • 28. Hard reset ● Botón derecho sobre el nodo del proyecto/ Team/ Reset: ● Listo, nos hemos descargado a nuestra copia local lo que tiene GIT ● De esta manera descartamos nuestros cambios
  • 30. ¿Por qué es importante? ● Supongamos que llevas varias horas (días, semanas,...) trabajando en el proyecto ● Has incorporado nuevas funcionalidades que van bien ● Sin embargo, hay un fichero que da problemas en esta nueva versión ● ¿Qué he tocado aquí para que ahora falle?
  • 31. Mostrar diferencias con copia local ● En la ventana del historial de versiones, seleccionamos el fichero que queremos comparar, botón derecho, comparar con copia de trabajo (o local)
  • 32. Mostrar diferencias con copia local ● Nos abre una nueva ventana con las líneas que se han modificado, y dentro de ésta, exactamente qué modificaciones ha sufrido:
  • 33. Mostrar diferencias con versión anterior ● Igual manera podría interesarnos qué cambios han habido en un fichero en la última versión con respecto de la anterior ● En el historial de versiones, en lugar de comparar con copia de trabajo, comparar con Ancestor: