Mini-tutorial de git

27,691 views
27,472 views

Published on

Mini-tutorial de GIT el sistema distribuído de control de versiones utilizado por el kernel Linux y otros proyectos de código abierto.

Published in: Technology
3 Comments
19 Likes
Statistics
Notes
No Downloads
Views
Total views
27,691
On SlideShare
0
From Embeds
0
Number of Embeds
1,378
Actions
Shares
0
Downloads
585
Comments
3
Likes
19
Embeds 0
No embeds

No notes for slide

Mini-tutorial de git

  1. 1. Mini-tutorial de Git Controlando las versiones del código fuente Antonio Ognio antonio@linux.org.pe
  2. 2. Mini-tutorial de Git – Antonio Ognio Agenda ● ¿Qué es Git? ● Breve historia ● Comandos básicos ● Ejemplos prácticos ● Github ● Conclusiones
  3. 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. 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. 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. 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. 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. 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. 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. 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. 11. Mini-tutorial de Git – Antonio Ognio Comandos básicos
  12. 12. Mini-tutorial de Git – Antonio Ognio Comandos básicos http://ktown.kde.org/~zrusin/git/
  13. 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. 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. 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. 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. 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. 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. 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. 20. Mini-tutorial de Git – Antonio Ognio Github
  21. 21. Mini-tutorial de Git – Antonio Ognio Github
  22. 22. Mini-tutorial de Git – Antonio Ognio Github
  23. 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

×