SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Control de
Versiones
emmanuel.lagarrigue@cs.uns.edu.ar
TDP 2018
Guardando información
• ¿Qué tan importantes son sus datos/archivos?
• ¿Tienen archivos que quisieran no perder nunca? ¿Pueden
asegurar que nunca vaya a pasar?
• ¿Les gustaría conocer la historia de los cambios de dichos
archivos?
• Cuando los archivos son compartidos… ¿Qué pasa con los
cambios por separado?
• Supongamos que dos programadores trabajan juntos
en un mismo código, cada uno en su computadora.
• Qué sucede cuando ambos cambian el mismo archivo
(clase), ya sean distintos métodos o los mismos.
• Trabajan en distintos archivos, y se los van pasando
para ir “mezclando” el código.
• Además, ¿cómo volver a versiones anteriores?
• Supongamos que la versión de hace una semana
tenía solucionado un issue que ahora resurgió,
¿cómo recuperarla?
• ¿Y si se rompe el disco?!!!!!!!!
• Mientras más gente esté involucrada en el código
fuente, los problemas crecen.
• Para solucionar este dilema, existen los Sistemas de
Control de Versión, o Controladores de Versión.
• El control de versiones es la gestión de los cambios
que se realizan sobre los elementos de un producto,
en nuestro caso, código fuente.
Cómo funciona
• El código se “sube” a
un “Repositorio”.
• “Bajamos” una copia
local (pull)
• Trabajamos en
nuestra copia local,
modificamos archivos
y hacemos un commit
(registro de historia de
manera local).
• Luego de hacer
nuestros cambios,
antes subirlos,
actualizamos la copia
local (pull).
• Ya que no había
cambios en el
repositorio, podemos
subir (push) los
cambios.
• Un 2do programador
quiere subir sus
cambios también, por
lo que hace pull.
• El controlador de
versiones mezcla la
copia local con la del
repositorio y reconoce
un conflicto.
• Se resuelven los
conflictos y se hace
push
• Cuando queremos que nuestros cambios se reflejen
en una nueva versión, hacemos un “commit” (local).
• Antes de subir nuestros cambios al repositorio,
hacemos “pull” de nuevo, para traer los cambios que
hayan subido terceros.
• Hacemos “merge” de nuestro código con el traído del
repositorio (automático).
• Solucionamos conflictos si es que los hay.
• Cuando queremos reflejar nuestros commits en el
repositorio, hacemos “push”
Resumen
• Repositorio: Lugar donde se almacenan los datos y
su historia. Generalmente, un servidor.
• Revisión (versión): Versión determinada que se
gestiona. Es un estado recordado de nuestro código
fuente. A la última versión se la llama “head”.
• Línea Base: Rama principal.
• Branch: Bifurcar, ramificar una rama. Es una copia
de una versión para trabajar en ella de manera
separada. En algún punto se debe hacer “merge” con
la línea base.
Conceptos
• Merge: Integrar, mezclar, unificar el código fuente.
• Clone: Obtener una copia local del repositorio. A esa
copia se la llama “workspace”.
• Commit: Guardar cambios en en repositorio. Se
creará una nueva versión. (Si usamos git, el commit
es local. Para actualizar el repositorio tenemos que
hacer “push” de todos los commits locales)
• Diff: Cambio. Por ejemplo, diferencia entre la copia
local y la última versión del repositorio.
Conceptos
• Conflicto: Cuando una o más líneas modificadas
localmente fueron modificadas y “commiteadas” por
un tercero en el repositorio.
• Export: Genera una copia local (cómo el check out),
pero fuera del controlador de versiones.
• Update: Actualizar el workspace, con la última
versión del repositorio. En git, se le llama “pull”.
Conceptos
• Tenemos principalmente dos componentes:
• El repositorio: es el lugar donde estará alojado
nuestro código fuente. Podría ser una base de
datos local o un sistema externo, por ejemplo
GitHub, Bitbucket, gitlab, Google Cloud Source
Repositories.
• El sistema de control de versiones: es la
herramienta (software) que automatiza la gestión
de los cambios. Ejemplos: Git, Subversion,
Mercurial.
Control de Versiones
• Es uno de los repositorios más populares, sobre todo
para proyectos open source.
• Gratis para repositorios públicos.
• Hay que crear un usuario, y permite crear y seguir
repositorios.
• https://github.com/
Repositorio:
• Es la herramienta instalada en nuestra computadora
que nos permite hacer pull, push, commit, etc en
nuestros repositorios.
• Se ejecuta por línea de comandos, no tiene interfaz
gráfica.
• https://git-scm.com
Control de versiones:
• Existen varias
herramientas GUI third
party para manejo de git.
• Podemos realizar las
mimas operaciones con
una interfaz más amigable
que la consola.
• https://git-scm.com/
Git GUI Clients
• Armar equipos de al menos dos alumnos.
• Un miembro del equipo debe crear un programa “Hello World”
en su lenguaje de programación favorito. La salida del
programa debe ser el string “Probando git”.
• Cada miembro debe clonar el brach principal, y modificar el
string de salida para que muestre “Probando git con
mi_nombre”.
Práctica:
• A medida que se van subiendo los cambios ocurrirán
conflictos. Debes solucionarse de la siguiente manera:
• Supongamos que Rick realiza el cambio local “Probando git
con Rick” y Morty hace lo mismo en su máquina, “Probando
git con Morty”.
• Si Rick hace push primero, cuando Morty quiera hacer push,
git obligará a hacer pull antes, ya que hubo cambios.
• Al hacer pull, se mezclará el código y surgirá el conflicto.
• Debe solucionarlo agregando su nombre al final: “Probando
git con Rick y con Morty”.
Práctica:
• Usar mensajes de commit descriptivos
• Cada commit tiene que ser una unidad lógica
• Mantener la copia local actualizada
• Mantener el repositorio actualizado
Buenas Prácticas:
U1 Control de versiones.pdf

Más contenido relacionado

Similar a U1 Control de versiones.pdf

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ódigoJesus Castagnetto
 
Git with gifs
Git with gifsGit with gifs
Git with gifsbetabeers
 
Manual para usuarios de Git @patxiredes.pdf
Manual para usuarios de Git @patxiredes.pdfManual para usuarios de Git @patxiredes.pdf
Manual para usuarios de Git @patxiredes.pdfCarlosJurado61
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
Control de versiones con Subversion
Control de versiones con SubversionControl de versiones con Subversion
Control de versiones con Subversionnqnwebs
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversionEudris Cabrera
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosEmmanuel Fortuna
 
Git para no gitters
Git para no gittersGit para no gitters
Git para no gittersRojomorgan
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
Tutorial para crear_clases_genericas
Tutorial para crear_clases_genericasTutorial para crear_clases_genericas
Tutorial para crear_clases_genericasmargaritapereira
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 
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
 

Similar a U1 Control de versiones.pdf (20)

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
 
Git with gifs
Git with gifsGit with gifs
Git with gifs
 
Manual para usuarios de Git @patxiredes.pdf
Manual para usuarios de Git @patxiredes.pdfManual para usuarios de Git @patxiredes.pdf
Manual para usuarios de Git @patxiredes.pdf
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Control de versiones con Subversion
Control de versiones con SubversionControl de versiones con Subversion
Control de versiones con Subversion
 
Tallerintroducciongit
TallerintroducciongitTallerintroducciongit
Tallerintroducciongit
 
Open Build Service
Open Build ServiceOpen Build Service
Open Build Service
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
[ES] Control de versiones con subversion
[ES] Control de versiones con  subversion[ES] Control de versiones con  subversion
[ES] Control de versiones con subversion
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Control de versiones y Subversion
Control de versiones y SubversionControl de versiones y Subversion
Control de versiones y Subversion
 
Git para no gitters
Git para no gittersGit para no gitters
Git para no gitters
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Git res baz ec - final
Git   res baz ec - finalGit   res baz ec - final
Git res baz ec - final
 
Tutorial para crear_clases_genericas
Tutorial para crear_clases_genericasTutorial para crear_clases_genericas
Tutorial para crear_clases_genericas
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
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
 
Versionamiento
VersionamientoVersionamiento
Versionamiento
 

Último

Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamientoRobertoAlejandroCast6
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 

Último (20)

Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa  tipos y funcionamientoCaldera Recuperadora de químicos en celulosa  tipos y funcionamiento
Caldera Recuperadora de químicos en celulosa tipos y funcionamiento
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 

U1 Control de versiones.pdf

  • 2. Guardando información • ¿Qué tan importantes son sus datos/archivos? • ¿Tienen archivos que quisieran no perder nunca? ¿Pueden asegurar que nunca vaya a pasar? • ¿Les gustaría conocer la historia de los cambios de dichos archivos? • Cuando los archivos son compartidos… ¿Qué pasa con los cambios por separado?
  • 3. • Supongamos que dos programadores trabajan juntos en un mismo código, cada uno en su computadora. • Qué sucede cuando ambos cambian el mismo archivo (clase), ya sean distintos métodos o los mismos.
  • 4. • Trabajan en distintos archivos, y se los van pasando para ir “mezclando” el código. • Además, ¿cómo volver a versiones anteriores? • Supongamos que la versión de hace una semana tenía solucionado un issue que ahora resurgió, ¿cómo recuperarla? • ¿Y si se rompe el disco?!!!!!!!!
  • 5. • Mientras más gente esté involucrada en el código fuente, los problemas crecen. • Para solucionar este dilema, existen los Sistemas de Control de Versión, o Controladores de Versión. • El control de versiones es la gestión de los cambios que se realizan sobre los elementos de un producto, en nuestro caso, código fuente.
  • 6. Cómo funciona • El código se “sube” a un “Repositorio”.
  • 7. • “Bajamos” una copia local (pull)
  • 8. • Trabajamos en nuestra copia local, modificamos archivos y hacemos un commit (registro de historia de manera local).
  • 9. • Luego de hacer nuestros cambios, antes subirlos, actualizamos la copia local (pull).
  • 10. • Ya que no había cambios en el repositorio, podemos subir (push) los cambios.
  • 11. • Un 2do programador quiere subir sus cambios también, por lo que hace pull. • El controlador de versiones mezcla la copia local con la del repositorio y reconoce un conflicto.
  • 12. • Se resuelven los conflictos y se hace push
  • 13. • Cuando queremos que nuestros cambios se reflejen en una nueva versión, hacemos un “commit” (local). • Antes de subir nuestros cambios al repositorio, hacemos “pull” de nuevo, para traer los cambios que hayan subido terceros. • Hacemos “merge” de nuestro código con el traído del repositorio (automático). • Solucionamos conflictos si es que los hay. • Cuando queremos reflejar nuestros commits en el repositorio, hacemos “push” Resumen
  • 14. • Repositorio: Lugar donde se almacenan los datos y su historia. Generalmente, un servidor. • Revisión (versión): Versión determinada que se gestiona. Es un estado recordado de nuestro código fuente. A la última versión se la llama “head”. • Línea Base: Rama principal. • Branch: Bifurcar, ramificar una rama. Es una copia de una versión para trabajar en ella de manera separada. En algún punto se debe hacer “merge” con la línea base. Conceptos
  • 15. • Merge: Integrar, mezclar, unificar el código fuente. • Clone: Obtener una copia local del repositorio. A esa copia se la llama “workspace”. • Commit: Guardar cambios en en repositorio. Se creará una nueva versión. (Si usamos git, el commit es local. Para actualizar el repositorio tenemos que hacer “push” de todos los commits locales) • Diff: Cambio. Por ejemplo, diferencia entre la copia local y la última versión del repositorio. Conceptos
  • 16. • Conflicto: Cuando una o más líneas modificadas localmente fueron modificadas y “commiteadas” por un tercero en el repositorio. • Export: Genera una copia local (cómo el check out), pero fuera del controlador de versiones. • Update: Actualizar el workspace, con la última versión del repositorio. En git, se le llama “pull”. Conceptos
  • 17.
  • 18. • Tenemos principalmente dos componentes: • El repositorio: es el lugar donde estará alojado nuestro código fuente. Podría ser una base de datos local o un sistema externo, por ejemplo GitHub, Bitbucket, gitlab, Google Cloud Source Repositories. • El sistema de control de versiones: es la herramienta (software) que automatiza la gestión de los cambios. Ejemplos: Git, Subversion, Mercurial. Control de Versiones
  • 19. • Es uno de los repositorios más populares, sobre todo para proyectos open source. • Gratis para repositorios públicos. • Hay que crear un usuario, y permite crear y seguir repositorios. • https://github.com/ Repositorio:
  • 20.
  • 21.
  • 22.
  • 23. • Es la herramienta instalada en nuestra computadora que nos permite hacer pull, push, commit, etc en nuestros repositorios. • Se ejecuta por línea de comandos, no tiene interfaz gráfica. • https://git-scm.com Control de versiones:
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. • Existen varias herramientas GUI third party para manejo de git. • Podemos realizar las mimas operaciones con una interfaz más amigable que la consola. • https://git-scm.com/ Git GUI Clients
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42. • Armar equipos de al menos dos alumnos. • Un miembro del equipo debe crear un programa “Hello World” en su lenguaje de programación favorito. La salida del programa debe ser el string “Probando git”. • Cada miembro debe clonar el brach principal, y modificar el string de salida para que muestre “Probando git con mi_nombre”. Práctica:
  • 43. • A medida que se van subiendo los cambios ocurrirán conflictos. Debes solucionarse de la siguiente manera: • Supongamos que Rick realiza el cambio local “Probando git con Rick” y Morty hace lo mismo en su máquina, “Probando git con Morty”. • Si Rick hace push primero, cuando Morty quiera hacer push, git obligará a hacer pull antes, ya que hubo cambios. • Al hacer pull, se mezclará el código y surgirá el conflicto. • Debe solucionarlo agregando su nombre al final: “Probando git con Rick y con Morty”. Práctica:
  • 44. • Usar mensajes de commit descriptivos • Cada commit tiene que ser una unidad lógica • Mantener la copia local actualizada • Mantener el repositorio actualizado Buenas Prácticas: