Mini-tutorial de git
-
Upload
antonio-ognio -
Category
Technology
-
view
26.439 -
download
0
description
Transcript of Mini-tutorial de git
Mini-tutorial de GitControlando las versiones del código fuente
Antonio [email protected]
Agenda
Mini-tutorial de Git – Antonio Ognio
● ¿Qué es Git?
● Breve historia
● Comandos básicos
● Ejemplos prácticos
● Github
● Conclusiones
¿Qué es Git?
Mini-tutorial de Git – Antonio Ognio
● 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
¿Porqué nos podría interesar?
Mini-tutorial de Git – Antonio Ognio
● 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
Sistema de control de versiones (RCS)
Mini-tutorial de Git – Antonio Ognio
● 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)
¿Qué otros sistemas de control de versiones hay?
Mini-tutorial de Git – Antonio Ognio
● RCS (el original, de Pardue University luego GNU)
● CVS
● Subversion (SVN)
● Mercurial (hg)
● Bazaar (bzr)
● Visual SourceSafe (Microsoft)
¿Porqué es “distribuído”?
Mini-tutorial de Git – Antonio Ognio
● No requiere un repositorio “central” (como svn)
● Cada copia o “clón” es autosuficiente y completa
● Cualquier copia se puede actualizar contra otra
Breve Historia
Mini-tutorial de Git – Antonio Ognio
● 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
Breve Historia (continuación)
Mini-tutorial de Git – Antonio Ognio
● 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...
¿Porqué Linus tuvo que crear Git?
Mini-tutorial de Git – Antonio Ognio
● 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!
Comandos básicos
Mini-tutorial de Git – Antonio Ognio
Comandos básicos
Mini-tutorial de Git – Antonio Ognio
http://ktown.kde.org/~zrusin/git/
Ejemplos prácticos
Mini-tutorial de Git – Antonio Ognio
● 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
Iniciar un proyecto
Mini-tutorial de Git – Antonio Ognio
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'
Ir trabajando por “pedacitos”
Mini-tutorial de Git – Antonio Ognio
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'
Revisar el trabajo realizado
Mini-tutorial de Git – Antonio Ognio
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
Corregir errores
Mini-tutorial de Git – Antonio Ognio
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 olvidado2git commit
Trabajando con un repositorio remoto
Mini-tutorial de Git – Antonio Ognio
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 carpeta2git commit -m 'Nueva revisión con tales cambios'
4. Enviar los cambios de vuelta al repositorio remoto
git push origin master
Github
Mini-tutorial de Git – Antonio Ognio
● 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 :)
Github
Mini-tutorial de Git – Antonio Ognio
Github
Mini-tutorial de Git – Antonio Ognio
Github
Mini-tutorial de Git – Antonio Ognio
Conclusiones
Mini-tutorial de Git – Antonio Ognio
● 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