27
git, control de versiones en 30 minutos José Pérez Martínez [email protected]

GIT Control de Versiones

Embed Size (px)

Citation preview

Page 1: GIT Control de Versiones

git, control de versiones en 30 minutos

José Pérez Martí[email protected]

Page 2: GIT Control de Versiones

Í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

Page 3: GIT Control de Versiones

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

Page 4: GIT Control de Versiones

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.

Page 5: GIT Control de Versiones

¿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/

Page 6: GIT Control de Versiones

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.

Page 7: GIT Control de Versiones

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

Page 8: GIT Control de Versiones

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"

Page 9: GIT Control de Versiones

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 [email protected]: Wed Jun 9 16:57:53 2010 +0200

Inicio del repositorioº

Page 10: GIT Control de Versiones

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

Page 11: GIT Control de Versiones

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 ...”

Page 12: GIT Control de Versiones

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

Page 13: GIT Control de Versiones

¿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 “”

Page 14: GIT Control de Versiones

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

Page 15: GIT Control de Versiones

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

Page 16: GIT Control de Versiones

SmartGit: Repositorio nuevo (1)

Page 17: GIT Control de Versiones

SmartGit: Repositorio nuevo (2)

• (1) Seleccionar el directorio de trabajo

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

•(3) Nombramos el proyecto.

Page 18: GIT Control de Versiones

SmartGit: Repositorio vacio (1)

Page 19: GIT Control de Versiones

SmartGit: Repositorio vacio (2)

Page 20: GIT Control de Versiones

SmartGit: Commit • Ctrl+Mayus+

A selecciona todoxs los ficherso para hacer commit

Page 21: GIT Control de Versiones

SmartGit: Añadir una etiqueta

Page 22: GIT Control de Versiones

SmartGit:

Page 23: GIT Control de Versiones

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

Page 24: GIT 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.

Page 25: GIT Control de Versiones

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.

Page 26: GIT Control de Versiones

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.

Page 27: GIT Control de Versiones

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

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

•Recordad, podéis contactar conmigo en:

[email protected]