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