GIT Control de Versiones

Post on 22-Nov-2014

304 views 2 download

Transcript of GIT Control de Versiones

git, control de versiones en 30 minutos

José Pérez Martínezjperez@dtic.ua.es

Índice

•Primeros pasos•Bloque 1: Git bash

▫Crear un repositorio local vacio▫Crear un repositorio remoto vacio▫Sincronizar y flujo de trabajo

•Bloque 2: SmartGit▫Crear un repositorio local vacio▫Flujo de trabajo▫Limitaciones de SmartGit

Primeros pasos• Cómo usar estas transparencias• ¿Qué es GIT¿ Breve historia• SmartGit

Cómo usar estas transparencias

•Los ejemplos aquí vistos para GIT se basan en la herramienta gráfica SmartGit que será presentada más adelante.

¿Qué es GIT? Breve historia

•GIT es un sistema rápido de control de versiones.

•Está escrito en C y que se ha hecho popular por ser el elegido para el kernel de Linux.

•Ha sido diseñado originalmente por Linus Torvalds.

•Permite repositorio local (off-working) yrepositorio remoto.

•http://git-scm.com/

SmartGit

•Cliente multiplataforma (java) muy cómodo e intuitivo.

•Al igual que el toolkit QT posee dos licencias: comercial y no-comercial. Usaremos la segunda.

•Es una alternativa rápida, cómoda y sencilla a usar GIT en consola.

Git bash• Crear un repositorio local vacio• Crear un repositorio remoto vacio• Sincronizar repositorios• Obtener una release del último cambio.

Crear un repositorio local (1)•Estando en el directorio deseado,

abrir la consola de GIT y teclear:

•Añadir el contenido del directorioal repositorio

• Por último, hacer commit y confirmar los cambios iniciales en el repositorio.

$ git init

$ git add .

$ git commit –a –m “Inicio del repositorio"

Crear un repositorio local (2)•Etiquetar un repositorio es muy útil.

•Tenemos un repositorio del siguiente tipo:

•También podemos leer el log al que hace referenciauna etiquetadada.

$ git tag –a –m “Version inicial” v0.0

$ git log v0.0commit 82d0.......Author: Jose Perez Martinez jperez@dtic.ua.esDate: Wed Jun 9 16:57:53 2010 +0200

Inicio del repositorioº

SmartGit: Crear repo. remoto•Clonar el repositorio (sin los ficheros de

proyecto)

•Clonar el repositorio (sin los ficheros de proyecto)

$ git remote add REMOTE-REPO ~/DROPBOX/GIT/remoterepo

$ git clone –bare . ~/DROPBOX/GIT/remoterepo

SmartGit: Subir fich. repo. remoto

•Hacer commit sobre el repositorio

•Ejecutar la acción de “push” (poner) en el repositorio remoto indicado

$ git push REMOTE-REPO maaster

$ git commit –a –m “Un mensaje informativo ...”

SmartGit: Descargar cambios repo. remoto• Situarnos en el directorio donde deberán

descargarse los repositorios. • Clonar el repositorio remoto:

• En cualquier momento puedes recuperar la información del repositorio remoto con:

$ git clone ~/Mis\ Documentos/My\ Dropbox/GIT/remote

$ git pull REMOTE-REPÔ master

¿Qué pasa si quiero volver a una versión más estable?

•Puede que un día hagamos commit de un proyecto y al pasar el tiempo durante una modificación necesitemos volver a algún estado anterior:

•Habremos vuelto a la versión estable deseada

git reset –hard [hash-ID or tag]

git commit –a –m “”

Crear el tarball de un release

•En la consola de GIT y en el directorio del repositorio:

• (la solución más cómoda es crear un script)

$ git archive –format=tar –prefix=project/ HEAD | gzip > latest.tar.gz

SmartGit• Crear un repositorio local vacio• Crear un repositorio remoto vacio• Sincronizar repositorios• Obtener una release del último cambio.

SmartGit: Repositorio nuevo (1)

SmartGit: Repositorio nuevo (2)

• (1) Seleccionar el directorio de trabajo

• (2) Indicamos que queremos “Iniciar” el repo.

•(3) Nombramos el proyecto.

SmartGit: Repositorio vacio (1)

SmartGit: Repositorio vacio (2)

SmartGit: Commit • Ctrl+Mayus+

A selecciona todoxs los ficherso para hacer commit

SmartGit: Añadir una etiqueta

SmartGit:

Glosario• Colección de términos empleados durante estas transparencias y de uso frecuente con herramientas de control de versiones.

Glosario de términos CV (1)• Repositorio:

El repositorio es el lugar en el que se almacenan los

datos actualizados e históricos, a menudo en un

servidor.

• Módulo: Conjunto de directorios y/o archivos dentro

del repositorio que pertenecen a un proyecto

común.

• Rotular (Tag) : Darle a alguna versión de cada uno de los ficheros del módulo en desarrollo en un

momento preciso un nombre para asegurarse de

reencontrar ese estado de desarrollo posteriormente

bajo ese nombre.

Glosario de términos CV (2)• Revisión

Una revisión es una versión determinada de un

archivo

• Ramificar (branch):Un módulo puede ser bifurcado en un

momento deltiempo de forma que, desde ese momento en

adelante, dos copias de un mismo fichero coexisten en

diferentes “ramas” (desarrollo y estable, pe.).

• Desplegar (checkout):Crea una copia de trabajo local desde el

repositorio. Se puede especificar una revisión

concreta, por defecto se suele obtener la última.

Glosario de términos CV (3)• Publicar (commit):

Un commit sucede cuando una copia de los cambios

hechos a una copia local es escrita o integrada sobre repositorio.

Fin!•Gracias por haber leído hasta aquí.

•Cualquier aportación, corrección o sugerencia será bien recibida.

•Recordad, podéis contactar conmigo en:

jperez@dtic.ua.es