SlideShare ist ein Scribd-Unternehmen logo
1 von 57
Iñaki Arenaza [email_address] @iarenaza (Creative Commons Attribution Non-commercial Share Alike 3.0 Spain License) Introducción al uso de
Sistemas de Control de Versiones Centralizados (CVCS) Ejemplos: CVS, Subversion, Perforce, SourceSafe, ... Fuente: http://progit.org/book/ch1-1.html (CC-BY-NC-SA 3.0)
Sistemas de Control de Versiones Distribuidos (DVCS) Ejemplos: git, Mercurial, Bazaar, BitKeeper,... Fuente: http://progit.org/book/ch1-1.html (CC-BY-NC-SA 3.0)
Diferencias versus instantáneas git, Mercurial* Bazaar, Mercurial* Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0) Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0)
(Algunas) características de git ,[object Object]
Git tiene integridad fuerte (sha1)
Git (generalmente) sólo añade datos
Los tres espacios y tres estados Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0) Modified* Staged Committed
Los tres espacios ,[object Object]
El directorio de trabajo es una copia de trabajo de una versión del proyecto.
El área de preparación (staging area) es un archivo que almacena información sobre lo que irá en el próximo commit. Antes se le llamaba “el índice”.
Los tres estados ,[object Object]
Modificado (modified): se ha modificado el archivo pero todavía no se ha confirmado.
Preparado (staged): se ha marcado para confirmación un archivo modificado en su versión actual.
Los “tres + 1” estados Fuente: http://progit.org/book/ch2-2.html  (CC-BY-NC-SA 3.0) El estado 3+1
Terminología de git ,[object Object]
objeto: unidad de almacenamiento en git.  ,[object Object]
Por tanto, un objeto es inmutable.
Tipos de objetos de git ,[object Object]
tree: lista de nombres y permisos, junto con las referencias de objetos blob o tree asociados. “Un directorio”.
Tipos de objetos de git ,[object Object]
la persona que ha realizado el commit de la revisión,
el autor de la revisión,
la fecha de la misma,
un mensaje asociado,
el objeto tree que corresponde al directorio raíz de la revisión.
Tipos de objetos de git ,[object Object]
un nombre simbólico (el de la propia tag)
puede contener un mensaje asociado.
opcionalmente puede incluir una firma (PGP). En este último caso se denomina un "objeto de etiqueta firmada".
Terminología de git (cont.) ,[object Object]
base de datos de objetos: almacena un conjunto de objetos ( habitualmente en $GIT_DIR/objects/ ).
ref o referencia: cadena de 40 bytes con la representación hexadecimal de un SHA1, o un nombre simbólico ( que se almacena en $GIT_DIR/refs/ ) que denota un objeto particular.
Terminología de git (cont.) ,[object Object]
padre: un objeto commit contiene una lista (potencialmente vacía) de objetos commit que representan a sus predecesores lógicos en la línea de desarrollo, esto es, sus ancestros.
Tipos de objetos de git Fuente: http://progit.org/book/ch3-1.html  (CC-BY-NC-SA 3.0)
Tipos de objetos de git Fuente: http://progit.org/book/ch3-1.html  (CC-BY-NC-SA 3.0)
Terminología de git (cont.) ,[object Object]
Puede contenier una copia de trabajo de una revisión. ,[object Object],[object Object]
Terminología de git (cont.) ,[object Object]
índice: una colección de ficheros con información de stat(2), cuyos contenidos están almacenados como objetos. ,[object Object]
Terminología de git (cont.) ,[object Object]
La copia de trabajo está siempre asociada a una rama (la rama "actual" o "checked out") y la cabeza especial “HEAD” apunta a esa rama. ,[object Object],[object Object]
Terminología de git (cont.) ,[object Object]
Terminología de git (cont.) Fuente: http://progit.org/book/ch3-1.html  (CC-BY-NC-SA 3.0) Estado “inicial” master sigue siendo la rama activa en la copia de trabajo $ git branch testing $ git checkout testing testing pasa a ser la rama activa en la copia de trabajo 1 2 3 4
Terminología de git (cont.) $ git add some-file(s) $ git commit -m ... $ git checkout master $ git add some-file(s) $ git commit -m ... Fuente: http://progit.org/book/ch3-1.html  (CC-BY-NC-SA 3.0) 1 2 3
Terminología de git (cont.) ,[object Object]
La fusión puede crear un nuevo objeto commit si una de las ramas no es un ancestro de la otra.
Si una es ancestro de la otra, simplemente se mueve la referencia de la cabeza de la rama fusionada ( fast-forward merge ).
merge: escenario 1 Fuente: http://progit.org/book/ch3-2.html  (CC-BY-NC-SA 3.0) $ git checkout master $ git merge hotfix $ git branch hotfix master $ git checkout hotfix $ git add …. $ git commit  1 2 3
merge: escenario 2 Fuente: http://progit.org/book/ch3-2.html  (CC-BY-NC-SA 3.0) $ git merge iss53 $ git checkout -b iss53 master $ git add …. $ git commit $ git checkout master $ git add …. $ git commit 1 2 3
Operaciones en el área de trabajo ,[object Object],[object Object],[object Object],[object Object],[object Object],$ git branch mdl21-nested-groups mdl21-ldap-refactor $ git checkout mdl21-nested-groups $ git branch $ git status $ git add fichero1 fichero2 ... $ git rm fichero3 fichero4 ...
Operaciones en el área de trabajo ,[object Object],[object Object],[object Object]
Usar gitk para visualizar el historial de una rama:
Usar gitk para visualizar el historial de todas las ramas: $ git diff $ git diff HEAD $ git diff MOODLE_21_STABLE $ git diff MOODLE_21_STABLE..mdl21-ldap-refactor $ git commit $ gitk mdl21-nested-group $ gitk --all
Terminología de git (cont.) ,[object Object],Fuente: http://progit.org/book/ch3-5.html  (CC-BY-NC-SA 3.0) * las cabezas de las ramas remotas son inamovibles**
Terminología de git (cont.) ,[object Object],Fuente: http://progit.org/book/ch3-5.html  (CC-BY-NC-SA 3.0) 1 2

Weitere ähnliche Inhalte

Was ist angesagt?

Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en españolRamón Glez
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Githubguest638090
 
Git: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuidoGit: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuidoIñaki Arenaza
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
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 aplicacionesParadigma Digital
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIquaip
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GITJulio Silva
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPKeopx
 
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 colaborativoHernán Aguilera
 
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? emateucr
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4fyomaira
 

Was ist angesagt? (20)

Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Git with Scrum en español
Git with Scrum en españolGit with Scrum en español
Git with Scrum en español
 
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
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Fundamentos de GIt y Github
Fundamentos de GIt y GithubFundamentos de GIt y Github
Fundamentos de GIt y Github
 
Control de versiones con Git y Github
Control de versiones con Git y GithubControl de versiones con Git y Github
Control de versiones con Git y Github
 
Git: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuidoGit: Aprovecha las ventajas del control de versiones distribuido
Git: Aprovecha las ventajas del control de versiones distribuido
 
Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en 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
 
Git + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XIIGit + Github - Betabeers Córdoba XII
Git + Github - Betabeers Córdoba XII
 
Control de versiones con Git
Control de versiones con GitControl de versiones con Git
Control de versiones con Git
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con 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
 
Herramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMPHerramientas de trabajo para entorno LAMP
Herramientas de trabajo para entorno LAMP
 
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
 
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?
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 

Andere mochten auch

Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015Iñaki Arenaza
 
Mahara y Moodle - EDUSOL 2011
Mahara y Moodle - EDUSOL 2011Mahara y Moodle - EDUSOL 2011
Mahara y Moodle - EDUSOL 2011Iñaki Arenaza
 
10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WPIñaki Arenaza
 
Las claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressLas claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressIñaki Arenaza
 
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)Iñaki Arenaza
 
Integración de Mahara con Moodle (MoodleMoot España 2010)
Integración de Mahara con Moodle (MoodleMoot España 2010)Integración de Mahara con Moodle (MoodleMoot España 2010)
Integración de Mahara con Moodle (MoodleMoot España 2010)Iñaki Arenaza
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresaIñaki Arenaza
 

Andere mochten auch (9)

Tunea tu wordpress
Tunea tu wordpressTunea tu wordpress
Tunea tu wordpress
 
Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015Forjas y repositorios de código en la nube. Euskal Encounter 2015
Forjas y repositorios de código en la nube. Euskal Encounter 2015
 
Mahara y Moodle - EDUSOL 2011
Mahara y Moodle - EDUSOL 2011Mahara y Moodle - EDUSOL 2011
Mahara y Moodle - EDUSOL 2011
 
10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP10 Claves para mejorar la seguridad de tu WP
10 Claves para mejorar la seguridad de tu WP
 
Las claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPressLas claves para optimizar la seguridad de tu sitio WordPress
Las claves para optimizar la seguridad de tu sitio WordPress
 
Mahoodle (English)
Mahoodle (English)Mahoodle (English)
Mahoodle (English)
 
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
Lo nuevo de Moodle 2.0 (MoodleMoot Colombia 2010)
 
Integración de Mahara con Moodle (MoodleMoot España 2010)
Integración de Mahara con Moodle (MoodleMoot España 2010)Integración de Mahara con Moodle (MoodleMoot España 2010)
Integración de Mahara con Moodle (MoodleMoot España 2010)
 
Monta WordPress en tu empresa
Monta WordPress en tu empresaMonta WordPress en tu empresa
Monta WordPress en tu empresa
 

Ähnlich wie Uso de git (Cursos de e-ghost 2011)

Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
 
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
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC sidelab
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicosIñaki Arenaza
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con gitJuan Vladimir
 
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
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con gitch1l3no
 
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
 
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
 
Chuleta Github: La potencia con control !!!!
Chuleta Github: La potencia con control !!!!Chuleta Github: La potencia con control !!!!
Chuleta Github: La potencia con control !!!!Cristian Romero Matesanz
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GITmaxfontana90
 

Ähnlich wie Uso de git (Cursos de e-ghost 2011) (20)

Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
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
 
Taller Git en la URJC
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
 
The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]The Gift of Git [Español: La Palabra de Git]
The Gift of Git [Español: La Palabra de Git]
 
Cheat-Sheet Git Commands
Cheat-Sheet Git CommandsCheat-Sheet Git Commands
Cheat-Sheet Git Commands
 
Uso de git para el mantenimiento de parches locales o públicos
Uso de git para el mantenimiento  de parches locales o públicosUso de git para el mantenimiento  de parches locales o públicos
Uso de git para el mantenimiento de parches locales o públicos
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
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
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
 
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
 
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
 
Git - Gitlab
Git - GitlabGit - Gitlab
Git - Gitlab
 
Chuleta Github: La potencia con control !!!!
Chuleta Github: La potencia con control !!!!Chuleta Github: La potencia con control !!!!
Chuleta Github: La potencia con control !!!!
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
Git
GitGit
Git
 
Introducción a GIT
Introducción a GITIntroducción a GIT
Introducción a GIT
 
Dependency Managers
Dependency ManagersDependency Managers
Dependency Managers
 
Git y github básico
Git y github básicoGit y github básico
Git y github básico
 
Dependency Managers iOS
Dependency Managers iOSDependency Managers iOS
Dependency Managers iOS
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 

Mehr von Iñaki Arenaza

Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsIñaki Arenaza
 
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusanoMahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusanoIñaki Arenaza
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenIñaki Arenaza
 
Internacionalización con WordPress (WordPress Euskadi 2014)
Internacionalización con WordPress (WordPress Euskadi 2014)Internacionalización con WordPress (WordPress Euskadi 2014)
Internacionalización con WordPress (WordPress Euskadi 2014)Iñaki Arenaza
 
Móntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasIñaki Arenaza
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxIñaki Arenaza
 
Mahoodle moot-colombia-2010
Mahoodle moot-colombia-2010Mahoodle moot-colombia-2010
Mahoodle moot-colombia-2010Iñaki Arenaza
 
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open sourceMoodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open sourceIñaki Arenaza
 
Uso de Mahara con Moodle
Uso de Mahara con MoodleUso de Mahara con Moodle
Uso de Mahara con MoodleIñaki Arenaza
 
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)Iñaki Arenaza
 

Mehr von Iñaki Arenaza (10)

Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
 
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusanoMahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
Mahara, el bosón de Higgs, los horizontes de sucesos y los agujeros de gusano
 
Forjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirvenForjas de Software: qué son y para que sirven
Forjas de Software: qué son y para que sirven
 
Internacionalización con WordPress (WordPress Euskadi 2014)
Internacionalización con WordPress (WordPress Euskadi 2014)Internacionalización con WordPress (WordPress Euskadi 2014)
Internacionalización con WordPress (WordPress Euskadi 2014)
 
Móntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horasMóntate un sitio web completo con WordPress en 4 horas
Móntate un sitio web completo con WordPress en 4 horas
 
Buddypress: Social Networking, in a Box
Buddypress: Social Networking, in a BoxBuddypress: Social Networking, in a Box
Buddypress: Social Networking, in a Box
 
Mahoodle moot-colombia-2010
Mahoodle moot-colombia-2010Mahoodle moot-colombia-2010
Mahoodle moot-colombia-2010
 
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open sourceMoodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
Moodle: Un ejemplo del modelo de desarrollo y gestión de proyectos open source
 
Uso de Mahara con Moodle
Uso de Mahara con MoodleUso de Mahara con Moodle
Uso de Mahara con Moodle
 
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
Sesión formativa sobre web 2.0 MGEP-MU (5 y 6 Mayo 2008)
 

Kürzlich hochgeladen

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Kürzlich hochgeladen (20)

Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Uso de git (Cursos de e-ghost 2011)

  • 1. Iñaki Arenaza [email_address] @iarenaza (Creative Commons Attribution Non-commercial Share Alike 3.0 Spain License) Introducción al uso de
  • 2. Sistemas de Control de Versiones Centralizados (CVCS) Ejemplos: CVS, Subversion, Perforce, SourceSafe, ... Fuente: http://progit.org/book/ch1-1.html (CC-BY-NC-SA 3.0)
  • 3. Sistemas de Control de Versiones Distribuidos (DVCS) Ejemplos: git, Mercurial, Bazaar, BitKeeper,... Fuente: http://progit.org/book/ch1-1.html (CC-BY-NC-SA 3.0)
  • 4. Diferencias versus instantáneas git, Mercurial* Bazaar, Mercurial* Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0) Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0)
  • 5.
  • 6. Git tiene integridad fuerte (sha1)
  • 8. Los tres espacios y tres estados Fuente: http://progit.org/book/ch1-3.html (CC-BY-NC-SA 3.0) Modified* Staged Committed
  • 9.
  • 10. El directorio de trabajo es una copia de trabajo de una versión del proyecto.
  • 11. El área de preparación (staging area) es un archivo que almacena información sobre lo que irá en el próximo commit. Antes se le llamaba “el índice”.
  • 12.
  • 13. Modificado (modified): se ha modificado el archivo pero todavía no se ha confirmado.
  • 14. Preparado (staged): se ha marcado para confirmación un archivo modificado en su versión actual.
  • 15. Los “tres + 1” estados Fuente: http://progit.org/book/ch2-2.html (CC-BY-NC-SA 3.0) El estado 3+1
  • 16.
  • 17.
  • 18. Por tanto, un objeto es inmutable.
  • 19.
  • 20. tree: lista de nombres y permisos, junto con las referencias de objetos blob o tree asociados. “Un directorio”.
  • 21.
  • 22. la persona que ha realizado el commit de la revisión,
  • 23. el autor de la revisión,
  • 24. la fecha de la misma,
  • 26. el objeto tree que corresponde al directorio raíz de la revisión.
  • 27.
  • 28. un nombre simbólico (el de la propia tag)
  • 29. puede contener un mensaje asociado.
  • 30. opcionalmente puede incluir una firma (PGP). En este último caso se denomina un "objeto de etiqueta firmada".
  • 31.
  • 32. base de datos de objetos: almacena un conjunto de objetos ( habitualmente en $GIT_DIR/objects/ ).
  • 33. ref o referencia: cadena de 40 bytes con la representación hexadecimal de un SHA1, o un nombre simbólico ( que se almacena en $GIT_DIR/refs/ ) que denota un objeto particular.
  • 34.
  • 35. padre: un objeto commit contiene una lista (potencialmente vacía) de objetos commit que representan a sus predecesores lógicos en la línea de desarrollo, esto es, sus ancestros.
  • 36. Tipos de objetos de git Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0)
  • 37. Tipos de objetos de git Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0)
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45. Terminología de git (cont.) Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0) Estado “inicial” master sigue siendo la rama activa en la copia de trabajo $ git branch testing $ git checkout testing testing pasa a ser la rama activa en la copia de trabajo 1 2 3 4
  • 46. Terminología de git (cont.) $ git add some-file(s) $ git commit -m ... $ git checkout master $ git add some-file(s) $ git commit -m ... Fuente: http://progit.org/book/ch3-1.html (CC-BY-NC-SA 3.0) 1 2 3
  • 47.
  • 48. La fusión puede crear un nuevo objeto commit si una de las ramas no es un ancestro de la otra.
  • 49. Si una es ancestro de la otra, simplemente se mueve la referencia de la cabeza de la rama fusionada ( fast-forward merge ).
  • 50. merge: escenario 1 Fuente: http://progit.org/book/ch3-2.html (CC-BY-NC-SA 3.0) $ git checkout master $ git merge hotfix $ git branch hotfix master $ git checkout hotfix $ git add …. $ git commit 1 2 3
  • 51. merge: escenario 2 Fuente: http://progit.org/book/ch3-2.html (CC-BY-NC-SA 3.0) $ git merge iss53 $ git checkout -b iss53 master $ git add …. $ git commit $ git checkout master $ git add …. $ git commit 1 2 3
  • 52.
  • 53.
  • 54. Usar gitk para visualizar el historial de una rama:
  • 55. Usar gitk para visualizar el historial de todas las ramas: $ git diff $ git diff HEAD $ git diff MOODLE_21_STABLE $ git diff MOODLE_21_STABLE..mdl21-ldap-refactor $ git commit $ gitk mdl21-nested-group $ gitk --all
  • 56.
  • 57.
  • 58.
  • 59.
  • 60. Si la cabeza de la rama remota no es un ancestro de la cabeza de la rama local, el push falla*.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65. Puede ser problemático en ramas publicadas en repositorios remotos.
  • 66. rebase: “limpieza” del historial Estado “inicial” merge tradicional de “master” y “experiment” rebase de “experiment” sobre “master” merge de “master” y “experiment” tras el rebase 1 2 3 4
  • 67. Limpieza del historial IMPORTANTE: No hace rebase de los cambios de una rama si ésta ha sido publicada en otro repositorio.
  • 68.
  • 69. Si hay conflictos, solucionar a mano, y decirle a git qué hemos arreglado:
  • 70. Podemos abortar en todo momento: $ git checkout wip-mdl21-enrol-db-refactor $ git rebase MOODLE_21_STABLE $ editar enrol/database/config.html $ git add enrol/database/config.html enrol/database/enrol.php $ editar xxxx $ git add xxxxx $ git rebase --continue $ git rebase --abort
  • 71.
  • 72. Creación de series de parches: $ git checkout mdl21-enrol-db-refactor $ git diff MOODLE_21_STABLE > mdl21-enrol-db-refactor.diff $ git checkout mdl21-enrol-database-refactor $ git format-patch -o serie-enrol-db MOODLE_21_STABLE $ git format-patch -o -s -10 mdl21-enrol-db
  • 73. Ejemplo de modelo de trabajo Para mantener modificaciones locales de Moodle en Mondragon Unibertsitatea
  • 74. Premisas del modelo de trabajo Repositorio 'compartido' de referencia
  • 75. Premisas del modelo de trabajo Aprovechar el repositorio de git.moodle.org No usar 'git clone' para la importación desde git.moodle.org
  • 76. Premisas del modelo de trabajo Repositorio compartido sólo con ramas locales
  • 77. Premisas del modelo de trabajo Desarrollo siempre en las ramas locales
  • 78. Premisas del modelo de trabajo Ramas estándar sólo en repositorios de los desarrolladores
  • 79. git.moodle.org repositorio compartido @mondragon.edu copia de trabajo + repositorio desarrollador git-remote + git-push git-fetch git-push git-pull git-fetch git-push git-pull git-remote + git-fetch git-fetch / git-pull git-clone git-clone git-remote + git-fetch git-fetch / git-pull git-fetch git-push git-pull
  • 80. Creación repositorio compartido $ git config --global user.name 'Desarrollador-1' $ git config --global user.email 'desa-1@mondragon.edu' $ cd /ruta/repositorio/desarrollador $ mkdir desarrollador-1.git $ cd desarrollador-1.git $ git init Crear repositorio primer desarrollador
  • 81. Creación repositorio compartido Importar repositorio de moodle.org $ git remote add -t master -t MOODLE_21_STABLE -m master moodle-org git://git.moodle.org/moodle.git $ git fetch moodle-org
  • 82. Creación repositorio compartido Ramas locales de seguimiento (opcional) $ git branch --track master moodle-org/master $ git branch --track MOODLE_21_STABLE moodle-org/MOODLE_21_STABLE
  • 83. Creación repositorio compartido Crear ramas locales de trabajo $ git branch mdl21-ldap-refactor moodle-org/MOODLE_21_STABLE
  • 84. Creación repositorio compartido Crear repositorio compartido $ cd /ruta/repositorio/compartido $ mkdir compartido.git $ cd compartido.git $ git --bare init --shared=all $ chmod g=rwxs,o=rx . $ sudo chgrp -R git-moodle .
  • 85. Creación repositorio compartido Enviar rama local al repositorio compartido $ cd /ruta/repositorio/desarrollador/desarrollador-1.git $ git remote add compartido /ruta/repositorio/compartido/compartido.git $ git push compartido mdl21-ldap-refactor
  • 86. Creación repositorio compartido Configurar rama local para hacer pull desde repositorio compartido $ git config branch.mdl21-ldap-refactor.remote compartido $ git config branch.mdl21-ldap-refactor.merge refs/heads/mdl21-ldap-refactor
  • 87. Creación repo nuevo desarrollador Clonar repositorio compartido $ git config --global user.name 'Desarrollador-2' $ git config --global user.email 'desa-2@mondragon.edu' $ cd /ruta/repositorio/desarrollador $ git clone -o compartido /ruta/repositorio/compartido/compartido.git desarrollador-2.git
  • 88. Creación repo nuevo desarrollador Importar ramas estándar (opcional) $ cd desarollador-2.git $ git remote add -t master -t MOODLE_21_STABLE -m master moodle-org git://git.moodle.org/moodle.git $ git fetch moodle-org
  • 89. Creación repo nuevo desarrollador Crear ramas locales de trabajo $ git branch mdl21-ldap-refactor compartido/mdl21-ldap-refactor $ git checkout mdl21-ldap-refactor
  • 90.
  • 92. git stash [save | list | show | apply | remove | clear]
  • 95. git gc, git prune, git fsck
  • 97.
  • 98.
  • 99.