SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Mini-tutorial de Git
 Controlando las versiones del código fuente


             Antonio Ognio
          antonio@linux.org.pe
Mini-tutorial de Git – Antonio Ognio


Agenda
  ●   ¿Qué es Git?

  ●   Breve historia

  ●   Comandos básicos

  ●   Ejemplos prácticos

  ●   Github

  ●   Conclusiones
Mini-tutorial de Git – Antonio Ognio


¿Qué es Git?
●   Un sistema distribuído de control de versiones

●   Software libre / Código abierto

●   Cada “clón” es una repositorio completo

    ●   Completo historial de revisiones

    ●   No depende de un repositorio central

●   Crear branches y hacer merge es rápido y fácil
Mini-tutorial de Git – Antonio Ognio


¿Porqué nos podría interesar?
●   Es utilizado por el proyecto del Kernel de Linux

●   Fué escrito por Linus Torvalds (originalmente)

●Es utilizado en proyectos como: Perl, GNOME, Qt, Ruby
on Rails, Android, Wine, etc

●   Esta “de moda” con sitios como Github

●   Ideal para un uso personal
Mini-tutorial de Git – Antonio Ognio


Sistema de control de versiones (RCS)
● Permite llevar cuenta de los cambios de un conjunto de archivos
 digitales en el tiempo

●   Cada versión registrada en el tiempo es una “revisión”

●   Muy utilizado para la gestión de código fuente

●Permite tanto a un desarrollador individual como a un grupo de
programadores gestionar el código de un proyecto

●   Especializados en archivos de texto (generalmente)
Mini-tutorial de Git – Antonio Ognio


¿Qué otros sistemas de control de versiones hay?
●   RCS (el original, de Pardue University luego GNU)

●   CVS

●   Subversion (SVN)

●   Mercurial (hg)

●   Bazaar (bzr)

●   Visual SourceSafe (Microsoft)
Mini-tutorial de Git – Antonio Ognio


¿Porqué es “distribuído”?


●   No requiere un repositorio “central” (como svn)

●   Cada copia o “clón” es autosuficiente y completa

●   Cualquier copia se puede actualizar contra otra
Mini-tutorial de Git – Antonio Ognio


Breve Historia

● El Kernel Linux es el proyecto de código abierto más
grande y con más actividad que existe en el mundo

●En el 2002 Linus Torvalds encontró en BitKeeper, un
producto comercial de la empresa BitMover un RCS
superior y decidió usarlo

● Stallman lo criticó, Alan Cox (Kernel 2.2) se opuso pero
igual se utilizó gracias a una licencia especial para
proyectos libres extendida por Larry McVoy
Mini-tutorial de Git – Antonio Ognio


Breve Historia (continuación)

● En 2005 se eliminó la licencia gratuita de BitKeeper
señalando a Andrew Tridgell (TRAC) de haber hecho
ingeniería reversa (cosa que el desmintió)

● Linus Torvalds tomó el toro por las astas y escribió el
mismo un sistema RCS con lo mejor de SVN, Bitkeeper y
las mejoras necesarias para el kernel

●Luego de 2 semanas de no trabajar en el kernel Linus
crea “GIT” y comienza la historia...
Mini-tutorial de Git – Antonio Ognio


¿Porqué Linus tuvo que crear Git?

●Ni siquiera BitKeeper era lo suficientemente rápido
para las necesidades del kernel como proyecto

●Muchos parches complicados tomaban hasta 30
segundos en aplicarse

●Sincronizar las versiones entre Linus Torvalds y Andrew
Morton (mantenedor de la rama 2.6 demoraba 2 horas!)

●   Se necesitaba algo veloz y distribuído, nace Git!
Mini-tutorial de Git – Antonio Ognio


Comandos básicos
Mini-tutorial de Git – Antonio Ognio


Comandos básicos




         http://ktown.kde.org/~zrusin/git/
Mini-tutorial de Git – Antonio Ognio


Ejemplos prácticos

●   Iniciar un proyecto

●   Ir trabajando por “pedacitos”

●   Revisar el trabajo realizado

●   Corregir errores

●   Trabajando con un repositorio remoto
    Tomado de: http://www.spheredev.org/wiki/Git_for_the_lazy
Mini-tutorial de Git – Antonio Ognio


Iniciar un proyecto
1. Crear una carpeta, entrar a una ya existente o descomprimir un archivo comprimido

cd proyecto
2. Decirle a git que empiece a llevar cuenta de los cambios

git init .
3. Agregar todos los archivos presentes

git add .
4. Crear la revisión inicial

git commit -m 'Revisión inicial'
Mini-tutorial de Git – Antonio Ognio


Ir trabajando por “pedacitos”
1. Ver que archivos han cambiado

git status
2. Ver los cambios en formato de parche (diff)

git diff
3. Agregar a la próxima revisión los archivos mencionados en el paso 1 que deseamos incluir

git add archivo1 archivo2 carpeta1 carpeta2
4. Crear una nueva revisión

git commit -m 'Nueva revisión con tales cambios'
Mini-tutorial de Git – Antonio Ognio


Revisar el trabajo realizado
1. Ver el historial de cambios

git log
2. Ver solo las últimas n (ej. 3) revisiones:

git log –n3
3. Ver cambios de forma detallada

git log --stat --summary
Mini-tutorial de Git – Antonio Ognio


Corregir errores
1. Descartar todos los cambios hechos desde la última revisión

git reset --hard

2. Descartar cambios en un archivo individual (actualizar a la última revisión conocida)

git checkout archivo
3. Corrigiendo la descripción de la última revisión (el último commit)

git commit --amend
4. Incluir algo que debió estar en la última revisión creada

git reset --soft HEAD^
git add olvidado1 olvidado2
git commit
Mini-tutorial de Git – Antonio Ognio


Trabajando con un repositorio remoto
1. Crear un “clón” del repositorio remoto

git clone git://servidor.com/ruta/al/proyecto.git
2. Agregar el origen remoto

git remote add origin git://servidor.com/ruta/al/proyecto.git

3. Hacer cambios y agregar los archivos modificados a una nueva revisión

git add archivo1 archivo2 carpeta1 carpeta2
git commit -m 'Nueva revisión con tales cambios'
4. Enviar los cambios de vuelta al repositorio remoto

git push origin master
Mini-tutorial de Git – Antonio Ognio


Github

●   Sitio web de hospedaje de proyectos usando git

●   Plan básico (gratuito) + otros planes pagados
    ● 300 MB de almacenamiento para proyectos




●Permite hacer “fork” con facilidad y luego solicitar
al dueño del repo original que haga “pull”

●   Una “red social” para programadores :)
Mini-tutorial de Git – Antonio Ognio


Github
Mini-tutorial de Git – Antonio Ognio


Github
Mini-tutorial de Git – Antonio Ognio


Github
Mini-tutorial de Git – Antonio Ognio


Conclusiones
  ● Git es una herramienta rápida, eficiente y moderna
  para el control de versiones de proyectos con archivos
  digitales sean o no código fuente

  ●Git permite flujos de trabajo distribuídos en los que
  no tiene porque existir un repositorio central

  ●Linus Torvalds creó Git de acuerdo a las necesidades
  del kernel pero ofreció una gran herramienta a la
  comunidad en general

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Git training v10
Git training v10Git training v10
Git training v10
 
Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)Introduzione a Git (ITA - 2017)
Introduzione a Git (ITA - 2017)
 
Git introduction for Beginners
Git introduction for BeginnersGit introduction for Beginners
Git introduction for Beginners
 
Git and GitHub
Git and GitHubGit and GitHub
Git and GitHub
 
Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities Course 102: Lecture 7: Simple Utilities
Course 102: Lecture 7: Simple Utilities
 
Music With Pharo
Music With PharoMusic With Pharo
Music With Pharo
 
Course 102: Lecture 8: Composite Commands
Course 102: Lecture 8: Composite Commands Course 102: Lecture 8: Composite Commands
Course 102: Lecture 8: Composite Commands
 
GIT_In_90_Minutes
GIT_In_90_MinutesGIT_In_90_Minutes
GIT_In_90_Minutes
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
Course 102: Lecture 6: Seeking Help
Course 102: Lecture 6: Seeking HelpCourse 102: Lecture 6: Seeking Help
Course 102: Lecture 6: Seeking Help
 
Git Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-FlowGit Series. Episode 3. Git Flow and Github-Flow
Git Series. Episode 3. Git Flow and Github-Flow
 
Git & GitHub WorkShop
Git & GitHub WorkShopGit & GitHub WorkShop
Git & GitHub WorkShop
 
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
Embedded Systems: Lecture 11: Introduction to Git & GitHub (Part 2)
 
Deep dark-side of git: How git works internally
Deep dark-side of git: How git works internallyDeep dark-side of git: How git works internally
Deep dark-side of git: How git works internally
 
Git
GitGit
Git
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Git real slides
Git real slidesGit real slides
Git real slides
 
Versionskontrolle mit Git
Versionskontrolle mit GitVersionskontrolle mit Git
Versionskontrolle mit Git
 

Destacado

GitHub para el resto de nosotros
GitHub para el resto de nosotrosGitHub para el resto de nosotros
GitHub para el resto de nosotros
noticiascac
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
drsevilla
 

Destacado (20)

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 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativo
 
Git, GitHub y Markdown
Git, GitHub y MarkdownGit, GitHub y Markdown
Git, GitHub y Markdown
 
Introducción a git
Introducción a gitIntroducción a git
Introducción a git
 
GitHub para el resto de nosotros
GitHub para el resto de nosotrosGitHub para el resto de nosotros
GitHub para el resto de nosotros
 
Minicurso Git
Minicurso GitMinicurso Git
Minicurso Git
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
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
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
git and github
git and githubgit and github
git and github
 
Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
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?
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Git tutorial
Git tutorial Git tutorial
Git tutorial
 
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
 
Integración contínua con Jenkins
Integración contínua con JenkinsIntegración contínua con Jenkins
Integración contínua con Jenkins
 

Similar a Mini-tutorial de git

05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
fyomaira
 

Similar a Mini-tutorial de git (20)

Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
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
 
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
 
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
 
Aprendiendo GIT
Aprendiendo GITAprendiendo GIT
Aprendiendo GIT
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Mejora tu productividad con git
Mejora tu productividad con gitMejora tu productividad con git
Mejora tu productividad con git
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
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
 
Taller breve de introduccion a Git
Taller breve de introduccion a GitTaller breve de introduccion a Git
Taller breve de introduccion a 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
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
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
 
05 intro-git-github-heroku-v4
05 intro-git-github-heroku-v405 intro-git-github-heroku-v4
05 intro-git-github-heroku-v4
 
Induccion0_GitLab.pptx
Induccion0_GitLab.pptxInduccion0_GitLab.pptx
Induccion0_GitLab.pptx
 
Primeros pasos con git
Primeros pasos con gitPrimeros pasos con git
Primeros pasos con git
 
Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con git
 

Más de Antonio Ognio

¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
Antonio Ognio
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
Antonio Ognio
 

Más de Antonio Ognio (16)

Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
Desarrollo ágil de sistemas distribuidos con Python empleando la arquitectura...
 
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
¿Cómo elegir el languaje y el framework de tu próxima aplicación web?
 
Organizando una Hackparty
Organizando una HackpartyOrganizando una Hackparty
Organizando una Hackparty
 
Lean Startups
Lean StartupsLean Startups
Lean Startups
 
Redis: servidor de estructuras de datos
Redis: servidor de estructuras de datosRedis: servidor de estructuras de datos
Redis: servidor de estructuras de datos
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010Bases de datos NoSQL - Huancayo - 2010
Bases de datos NoSQL - Huancayo - 2010
 
Desarrollando con PHP en Windows
Desarrollando con PHP en WindowsDesarrollando con PHP en Windows
Desarrollando con PHP en Windows
 
Gestor de paquetes YUM
Gestor de paquetes YUMGestor de paquetes YUM
Gestor de paquetes YUM
 
Twixer (english)
Twixer (english)Twixer (english)
Twixer (english)
 
Twixer
TwixerTwixer
Twixer
 
Mejorando la seguridad del servicio SSH - Hardening
Mejorando la seguridad del servicio SSH - HardeningMejorando la seguridad del servicio SSH - Hardening
Mejorando la seguridad del servicio SSH - Hardening
 
¿Porqué Python? ...y Django
¿Porqué Python? ...y Django¿Porqué Python? ...y Django
¿Porqué Python? ...y Django
 
Ubuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty JackalopeUbuntu Server Edition 9.04 Jaunty Jackalope
Ubuntu Server Edition 9.04 Jaunty Jackalope
 
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/LinuxConsejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
Consejos y trucos de supervivencia para nuevos usuarios de GNU/Linux
 
REPLs
REPLsREPLs
REPLs
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (11)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Mini-tutorial de git

  • 1. Mini-tutorial de Git Controlando las versiones del código fuente Antonio Ognio antonio@linux.org.pe
  • 2. Mini-tutorial de Git – Antonio Ognio Agenda ● ¿Qué es Git? ● Breve historia ● Comandos básicos ● Ejemplos prácticos ● Github ● Conclusiones
  • 3. Mini-tutorial de Git – Antonio Ognio ¿Qué es Git? ● Un sistema distribuído de control de versiones ● Software libre / Código abierto ● Cada “clón” es una repositorio completo ● Completo historial de revisiones ● No depende de un repositorio central ● Crear branches y hacer merge es rápido y fácil
  • 4. Mini-tutorial de Git – Antonio Ognio ¿Porqué nos podría interesar? ● Es utilizado por el proyecto del Kernel de Linux ● Fué escrito por Linus Torvalds (originalmente) ●Es utilizado en proyectos como: Perl, GNOME, Qt, Ruby on Rails, Android, Wine, etc ● Esta “de moda” con sitios como Github ● Ideal para un uso personal
  • 5. Mini-tutorial de Git – Antonio Ognio Sistema de control de versiones (RCS) ● Permite llevar cuenta de los cambios de un conjunto de archivos digitales en el tiempo ● Cada versión registrada en el tiempo es una “revisión” ● Muy utilizado para la gestión de código fuente ●Permite tanto a un desarrollador individual como a un grupo de programadores gestionar el código de un proyecto ● Especializados en archivos de texto (generalmente)
  • 6. Mini-tutorial de Git – Antonio Ognio ¿Qué otros sistemas de control de versiones hay? ● RCS (el original, de Pardue University luego GNU) ● CVS ● Subversion (SVN) ● Mercurial (hg) ● Bazaar (bzr) ● Visual SourceSafe (Microsoft)
  • 7. Mini-tutorial de Git – Antonio Ognio ¿Porqué es “distribuído”? ● No requiere un repositorio “central” (como svn) ● Cada copia o “clón” es autosuficiente y completa ● Cualquier copia se puede actualizar contra otra
  • 8. Mini-tutorial de Git – Antonio Ognio Breve Historia ● El Kernel Linux es el proyecto de código abierto más grande y con más actividad que existe en el mundo ●En el 2002 Linus Torvalds encontró en BitKeeper, un producto comercial de la empresa BitMover un RCS superior y decidió usarlo ● Stallman lo criticó, Alan Cox (Kernel 2.2) se opuso pero igual se utilizó gracias a una licencia especial para proyectos libres extendida por Larry McVoy
  • 9. Mini-tutorial de Git – Antonio Ognio Breve Historia (continuación) ● En 2005 se eliminó la licencia gratuita de BitKeeper señalando a Andrew Tridgell (TRAC) de haber hecho ingeniería reversa (cosa que el desmintió) ● Linus Torvalds tomó el toro por las astas y escribió el mismo un sistema RCS con lo mejor de SVN, Bitkeeper y las mejoras necesarias para el kernel ●Luego de 2 semanas de no trabajar en el kernel Linus crea “GIT” y comienza la historia...
  • 10. Mini-tutorial de Git – Antonio Ognio ¿Porqué Linus tuvo que crear Git? ●Ni siquiera BitKeeper era lo suficientemente rápido para las necesidades del kernel como proyecto ●Muchos parches complicados tomaban hasta 30 segundos en aplicarse ●Sincronizar las versiones entre Linus Torvalds y Andrew Morton (mantenedor de la rama 2.6 demoraba 2 horas!) ● Se necesitaba algo veloz y distribuído, nace Git!
  • 11. Mini-tutorial de Git – Antonio Ognio Comandos básicos
  • 12. Mini-tutorial de Git – Antonio Ognio Comandos básicos http://ktown.kde.org/~zrusin/git/
  • 13. Mini-tutorial de Git – Antonio Ognio Ejemplos prácticos ● Iniciar un proyecto ● Ir trabajando por “pedacitos” ● Revisar el trabajo realizado ● Corregir errores ● Trabajando con un repositorio remoto Tomado de: http://www.spheredev.org/wiki/Git_for_the_lazy
  • 14. Mini-tutorial de Git – Antonio Ognio Iniciar un proyecto 1. Crear una carpeta, entrar a una ya existente o descomprimir un archivo comprimido cd proyecto 2. Decirle a git que empiece a llevar cuenta de los cambios git init . 3. Agregar todos los archivos presentes git add . 4. Crear la revisión inicial git commit -m 'Revisión inicial'
  • 15. Mini-tutorial de Git – Antonio Ognio Ir trabajando por “pedacitos” 1. Ver que archivos han cambiado git status 2. Ver los cambios en formato de parche (diff) git diff 3. Agregar a la próxima revisión los archivos mencionados en el paso 1 que deseamos incluir git add archivo1 archivo2 carpeta1 carpeta2 4. Crear una nueva revisión git commit -m 'Nueva revisión con tales cambios'
  • 16. Mini-tutorial de Git – Antonio Ognio Revisar el trabajo realizado 1. Ver el historial de cambios git log 2. Ver solo las últimas n (ej. 3) revisiones: git log –n3 3. Ver cambios de forma detallada git log --stat --summary
  • 17. Mini-tutorial de Git – Antonio Ognio Corregir errores 1. Descartar todos los cambios hechos desde la última revisión git reset --hard 2. Descartar cambios en un archivo individual (actualizar a la última revisión conocida) git checkout archivo 3. Corrigiendo la descripción de la última revisión (el último commit) git commit --amend 4. Incluir algo que debió estar en la última revisión creada git reset --soft HEAD^ git add olvidado1 olvidado2 git commit
  • 18. Mini-tutorial de Git – Antonio Ognio Trabajando con un repositorio remoto 1. Crear un “clón” del repositorio remoto git clone git://servidor.com/ruta/al/proyecto.git 2. Agregar el origen remoto git remote add origin git://servidor.com/ruta/al/proyecto.git 3. Hacer cambios y agregar los archivos modificados a una nueva revisión git add archivo1 archivo2 carpeta1 carpeta2 git commit -m 'Nueva revisión con tales cambios' 4. Enviar los cambios de vuelta al repositorio remoto git push origin master
  • 19. Mini-tutorial de Git – Antonio Ognio Github ● Sitio web de hospedaje de proyectos usando git ● Plan básico (gratuito) + otros planes pagados ● 300 MB de almacenamiento para proyectos ●Permite hacer “fork” con facilidad y luego solicitar al dueño del repo original que haga “pull” ● Una “red social” para programadores :)
  • 20. Mini-tutorial de Git – Antonio Ognio Github
  • 21. Mini-tutorial de Git – Antonio Ognio Github
  • 22. Mini-tutorial de Git – Antonio Ognio Github
  • 23. Mini-tutorial de Git – Antonio Ognio Conclusiones ● Git es una herramienta rápida, eficiente y moderna para el control de versiones de proyectos con archivos digitales sean o no código fuente ●Git permite flujos de trabajo distribuídos en los que no tiene porque existir un repositorio central ●Linus Torvalds creó Git de acuerdo a las necesidades del kernel pero ofreció una gran herramienta a la comunidad en general