Está en la página 1de 23

Mini-tutorial de Git

Controlando las versiones del cdigo fuente

Antonio Ognio antonio@linux.org.pe

Mini-tutorial de Git Antonio Ognio

Agenda

Qu es Git? Breve historia Comandos bsicos Ejemplos prcticos Github Conclusiones

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

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

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 versin registrada en el tiempo es una revisin Muy utilizado para la gestin de cdigo fuente

Permite tanto a un desarrollador individual como a un grupo de programadores gestionar el cdigo 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 distribudo?

No requiere un repositorio central (como svn) Cada copia o cln 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 cdigo abierto ms grande y con ms 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 (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 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 rpido 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 distribudo, nace Git!

Mini-tutorial de Git Antonio Ognio

Comandos bsicos

Mini-tutorial de Git Antonio Ognio

Comandos bsicos

http://ktown.kde.org/~zrusin/git/

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

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 revisin inicial

git commit -m 'Revisin 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 prxima revisin los archivos mencionados en el paso 1 que deseamos incluir

git add archivo1 archivo2 carpeta1 carpeta2


4. Crear una nueva revisin

git commit -m 'Nueva revisin 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 revisin

git reset --hard


2. 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 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 cln 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 revisin

git add archivo1 archivo2 carpeta1 carpeta2 git commit -m 'Nueva revisin 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 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 :)

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 rpida, eficiente y moderna para el control de versiones de proyectos con archivos digitales sean o no cdigo fuente

Git permite flujos de trabajo distribudos 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

También podría gustarte