Mini-tutorial de git

  • Published on
    26-May-2015

  • View
    26.422

  • Download
    0

Embed Size (px)

DESCRIPTION

Mini-tutorial de GIT el sistema distribudo de control de versiones utilizado por el kernel Linux y otros proyectos de cdigo abierto.

Transcript

  • 1. Mini-tutorial de GitControlando las versiones del cdigo fuenteAntonio Ognio antonio@linux.org.pe

2. Mini-tutorial de Git Antonio Ognio Agenda Qu es Git? Breve historia Comandos bsicos Ejemplos prcticos Github Conclusiones 3. Mini-tutorial de Git Antonio Ognio Qu es Git? Un sistema distribudo de control de versiones Software libre / Cdigo abierto Cada cln es una repositorio completo Completo historial de revisiones No depende de un repositorio central Crear branches y hacer merge es rpido y fcil 4. Mini-tutorial de Git Antonio Ognio Porqu nos podra 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 archivosdigitales en el tiempo Cada versin registrada en el tiempo es una revisin Muy utilizado para la gestin de cdigo fuentePermite tanto a un desarrollador individual como a un grupo de programadores gestionar el cdigo 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 distribudo? No requiere un repositorio central (como svn) Cada copia o cln 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 cdigo abierto ms grande y con ms actividad que existe en el mundoEn 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 (continuacin) En 2005 se elimin la licencia gratuita de BitKeeper sealando a Andrew Tridgell (TRAC) de haber hecho ingeniera 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 kernelLuego 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 rpido para las necesidades del kernel como proyectoMuchos parches complicados tomaban hasta 30 segundos en aplicarseSincronizar las versiones entre Linus Torvalds y Andrew Morton (mantenedor de la rama 2.6 demoraba 2 horas!) Se necesitaba algo veloz y distribudo, nace Git! 11. Mini-tutorial de Git Antonio Ognio Comandos bsicos 12. Mini-tutorial de Git Antonio Ognio Comandos bsicoshttp://ktown.kde.org/~zrusin/git/ 13. Mini-tutorial de Git Antonio Ognio Ejemplos prcticos 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 comprimidocd proyecto 2. Decirle a git que empiece a llevar cuenta de los cambiosgit init . 3. Agregar todos los archivos presentesgit add . 4. Crear la revisin inicialgit commit -m 'Revisin inicial' 15. Mini-tutorial de Git Antonio Ognio Ir trabajando por pedacitos 1. Ver que archivos han cambiadogit status 2. Ver los cambios en formato de parche (diff)git diff 3. Agregar a la prxima revisin los archivos mencionados en el paso 1 que deseamos incluirgit add archivo1 archivo2 carpeta1 carpeta2 4. Crear una nueva revisingit commit -m 'Nueva revisin con tales cambios' 16. Mini-tutorial de Git Antonio Ognio Revisar el trabajo realizado 1. Ver el historial de cambiosgit log 2. Ver solo las ltimas n (ej. 3) revisiones:git log n3 3. Ver cambios de forma detalladagit log --stat --summary 17. Mini-tutorial de Git Antonio Ognio Corregir errores 1. Descartar todos los cambios hechos desde la ltima revisingit reset --hard2. Descartar cambios en un archivo individual (actualizar a la ltima revisin conocida)git checkout archivo 3. Corrigiendo la descripcin de la ltima revisin (el ltimo commit)git commit --amend 4. Incluir algo que debi estar en la ltima revisin creadagit reset --soft HEAD^ git add olvidado1 olvidado2 git commit 18. Mini-tutorial de Git Antonio Ognio Trabajando con un repositorio remoto 1. Crear un cln del repositorio remotogit clone git://servidor.com/ruta/al/proyecto.git 2. Agregar el origen remotogit remote add origin git://servidor.com/ruta/al/proyecto.git3. Hacer cambios y agregar los archivos modificados a una nueva revisingit add archivo1 archivo2 carpeta1 carpeta2 git commit -m 'Nueva revisin con tales cambios' 4. Enviar los cambios de vuelta al repositorio remotogit push origin master 19. Mini-tutorial de Git Antonio Ognio Github Sitio web de hospedaje de proyectos usando git Plan bsico (gratuito) + otros planes pagados 300 MB de almacenamiento para proyectos Permite hacer fork con facilidad y luego solicitar al dueo 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 rpida, eficiente y moderna para el control de versiones de proyectos con archivos digitales sean o no cdigo fuenteGit permite flujos de trabajo distribudos en los que no tiene porque existir un repositorio centralLinus Torvalds cre Git de acuerdo a las necesidades del kernel pero ofreci una gran herramienta a la comunidad en general