Git The fast version control system



Documentos relacionados
Introducción al uso de

GIT Dinahosting 3. Hola!

Manual para el uso de GIT Los siguientes pasos indican el procedimiento para entrar a GIT y para agregar la llave pública.

Social Coding GIT - El control de versiones es la gestión de los diversos cambios que se realizan sobre algún archivo, en este caso, código.

El Zen de git. Un taller de introducción al uso de git del humilde sensei Psicobyte para la honorable Oficina de Software Libre de la UGR.

Introducción a GIT. GIT SDA Ing. Carlos Dell Aquila

Qué es un sistema de control de versiones y cómo afecta directamente en vuestra felicidad?

Introducción a GIT GIT - SDA. Carlos Del Aquila Sistemas Digitales Avanzados Universidad Nacional de San Juan

David Pérez Jaén. Aplicado a la Automatización Industrial

Conceptos Repositorio, repository Repositorio local Repositorio remoto origin Revisión, parche, commit Commit ID

Git. Introduccion a Git: Un Sistema de control de versiones. ...bien hecho. Gabriel Saldaña gabriel@gabrielsaldana.org

La tortuga y los documentos: Tortoise + Subversion

Taller de Git y GitHub

Escenarios de trabajo en Git

SUBVERSION Y SUBCLIPSE

Tutorial: Primeros Pasos con Subversion

Enginyeria del Software III ( ) CONTROL DE VERSIONES CON SUBVERSION. Roberto García Despatx EPS 3.15

Desarrollo de software en comunidad: Forja de código + Subversion (SVN)

Profesor: José Luis Di Biase

Programas que permiten gestionar un repositorio de archivos y sus distintas versiones Utilizan una arquitectura cliente-servidor

Introducción a GIT. Santiago Avalos - Ingenieria del Software - FaMAF

Taller de Git y GitHub desde cero

El núcleo del sistema es la gestión de cambios. Es un mecanismo de comunicación donde el cambio es la unidad básica de información.

Control de Versiones con Subversion

Edito el primer archivo echo Creo una primera línea en el primer archivo >> primer_archivo.txt git status git add primer_archivo.

REPOSITORIOS. Ing. Ismael Castañeda Fuentes, MSc Grupo de Investigación UNBD Universidad Nacional de Colombia Marzo de 2011

INSTALACIÓN DE GITLAB

Laboratorio de Desarrollo Software

Control de versiones con Subversion

Capacitación: Control de versiones con SVN

Instructivo para descarga del código fuente

Git Servidores privados

Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS

Tema 12 Control de versiones

Uso practico de CVS para control de versiones

noébox Backup Remoto Copias de Seguridad Envío de Grandes Ficheros Copias de Seguridad

Administración de sistemas UNIX/Linux Ejercicios prácticos IV

Gestión de proyectos software con Git y Github

Tutorial: Cómo realizar tu primer programa en C++ En el Sistema Operativo Windows

Control de versiones con Subversion. Martín Gaitán y Pablo Martínez FCEFyN, Universidad Nacional de Córdoba Junio de 2007

Manual de usuario. Instalación y configuración del cliente VPN OpenVPN para el acceso a los servicios del Laboratorio Virtual

Instalación Hadoop. Guía para Debian y derivados

Hello, Thanks for signing up for OpenShift! Getting started is easy.

Introducción a la Computación Sistemas de Control de Versiones (VCS)

Desarrollo de Sage Como modificar y mejorar el programa. Miguel Angel Marco Buzunariz Jarandilla de la Vera 1 de Junio de 2014

Login y Password. Elección de directorios confidenciales

git - la guía sencilla simplemente una guía sencilla para comenzar con git. nada complicado Tweet 3,758

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Introducción a la Computación Sistemas de Control de Versiones (VCS)

labs Linux para Administradores de Elastix Elastix Certification ELASTIX CERTIFICATION

Qué ventajas presenta Google Drive para catedráticos y alumnos?

Manual de instalación del opencast: Matterhorn

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Introducción al Sistema de Control de Versiones Distribuido Git

Procedimiento. Actualización de Kit de Conexión de Comercios Webpay versión 5.X a Canales Remotos Operaciones. Transbank S.A.

[CONFIGURACIÓN DE DNS]

Como Resolver Problemas con la Conexión de una Base de Datos

Puedes obtener la última versión disponible en

BRUTALIX Una distribución GNU/Linux para operadores.

IBM SPSS Statistics para Linux Instrucciones de instalación (Usuario individual)

Practica 4 1. Certificados digitales

Instalar soporte ESE en DSpace

REQUERIMIENTOS TÉCNICOS

Subversion: Desarrollo colaborativo

Gestión de proyectos software con Git y Github

Preguntas más frecuentes (FAQ) sobre el nuevo sistema de licencias de ARS

AKMUS INTERNATIONAL NETWORKS :: SERIE TUTORIALES

Una prueba de concepto con Git Essentials. Introducción

Subversion personal. Para qué sirve Subversion?

EMC SourceOne TM para Microsoft SharePoint 7.0 Búsqueda de archivo Tarjeta de referencia rápida

INSTRUCTIVO DE ADMINISTRADOR NUXEO PLATFORM EN LINUX SERVER

Trabajando en Equipo con Git y Github

PRACTICA 4 1-CERTIFICADO DIGITAL VERIFICADO 2-CERTIFICADO DIGITAL NO VERIFICADO 3-SERVIDOR VIRTUAL HTTPS EN LINUX 4- SERVIDOR VIRTUAL HTTPS

Control de Versiones Utilizando SVN

Guía para la Descarga e Instalación de Certificados Camerales en formato Software. Sistemas Windows

Git. Fundamentos. Desarrollado por Jesús Amieiro Becerra

Contenido. Curso de subversion. Problemas comunes. Problemas: Situación: Introducción a los sistemas de control de versiones

Generación de baterías de preguntas

DBSURE. Disponemos de una copia de la base de datos de forma remota, que podemos contabilizar como segundo juego de copias.

CVS Concurrent Versions System Manual de Usuario

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

1. Creación del repositorio

Cluster Beowulf/MPI en Debian

TERMINAL DE COMANDOS (RED HAT, CENTOS Y FEDORA)

Instalación de un sistema Debian chroot

Guía de Instalación del servicio de BackupOnline de Idecnet. Indice

Control de versiones con git Más allá del commit. Mario Sánchez Prada

MANUAL DE USUARIO PAGOS EN LÍNEA

manual Manual de Usuario Intranet Gobierno Regional Región de Valparaíso

Gestión de Ficheros en ruralvía Recibos

Sistema de Control de Versiones CVS

Transcripción:

Git The fast version control system Fco Javier Lucena Consultor Informático Granada, 23-Nov-2011 http://www.opentia.com

Índice Git: The Fast Version Control System Granada, 23 de Noviembre de 2011 2 / git init Installation Setup First Step Working with remote repositories Branches and Merging Rebase Online remote repositories Git Hosting Provider Graphical UI's for Git

Git init Qué es un sistema de control de versiones? 3 /

Git Init Qué es una Versión? estado en el que se encuentra un proyecto en un momento determinado 4 /

Git Init un SCV Casero? 5 /

Git Init 6 /

Git Init 7 /

Git Init Qué es un sistema de control de versiones? Software para gestionar el historial de versiones de un proyecto 8 /

Git Init Ventajas 9 /

Git Init Copias de Seguridad 10 /

Git Init Deshacer Cambios 11 /

Git Init Historial de Cambios 12 /

Git Init Diferentes Versiones del Proyecto 13 /

Git Init Git nació en 2005 de la mano de Linus Torvalds a raíz de su trabajo en el desarrollo del Kernel Linux * Objetivos - Velocidad - Diseño simple - Un fuerte apoyo para el desarrollo no lineal (en miles de ramas en paralelo) - Totalmente distribuido - Capaz de manejar grandes proyectos como el kernel de Linux de manera eficiente (la velocidad y tamaño de los datos) 14 /

Git Init Git se basa en un SCV DISTRIBUIDO 15 /

Git Init Integridad Todo es verificado antes de ser almacenado Se identifica a partir de una suma de verificación. Es imosible perder información al transmitirla sin que git lo pueda dectectar hash SHA-1: 24b9da6552252987aa493b52f8696cd6d3b00373 16 /

Git Init 17 /

Git Init Instantáneas (No diferencias) Git modela sus datos más como un conjunto de instantáneas de un mini sistema de archivos. Al hacer un cambio Git hace una foto del aspecto de los archivos y guarda una referencia a esa instantánea. Por eficiencia, si los archivos no se han modificado Git no almacena el archivo de nuevo, sólo un enlace al archivo anterior idéntico que ya tiene almacenado 18 /

Git init Instantáneas (No diferencias) 19 /

Git Init Operaciones en local Commits offline! Sin retrasos por operaciones de red La historia del proyecto se encuentra en la DB local Recuperar archivos de una versión de hace un mes haciendo un calculo de diferencias localmente. 20 /

Git Init 21 /

Git Init Los tres estados El área de preparación(staging area) es un archivo que almacena información sobre lo que irá en el próximo commit.antes se le llamaba el índice. El directorio (repositorio) es donde git almacena los metadatos y la base de datos de objetos para tu proyecto. 22 /

Git Init Los tres estados Confirmado/no modificado(committed): Los datos están almacenados de manera segura en el directorio. Modificado(modified): se ha modificado el archivo pero todavía no se ha confirmado. Preparado(staged): se ha marcado para confirmación un archivo modificado en su versión actual. 23 /

Installation sudo apt-get install git-core gitk git-gui 24 /

Installation Autocompletado Descargar al directorio /home el fichero https://github.com/git/git/tree/master/contrib/completion Copiar al fichero.bashrc la linea: source ~/.git-completion.bash git + <tab> 25 /

SetUp Se almacena la configuración en el fichero.gitconfig del directorio /home del usuario Configuración del usuario git config --global user.name "Nombre Apellido" git config --global user.email "email@gmail.com" Colores para consola git config --global color.status auto git config --global color.branch auto git config --list 26 /

SetUp El fichero.gitignore del directorio principal 27 /

First Step cd ~/ mkdir repo1 cd repo1 mkdir datafiles touch test01 touch test02 touch datafiles/data.txt ls > test01 28 /

First Step git init git add. git commit -m Ficheros iniciales git log 29 /

First Step echo "Cambiando fichero" > test01 echo "nueva linea en test02" > test02 git diff git commit -a -m "Los nuevos cambios" 30 /

First Step echo "Nueva linea en test01 -A" > test01 echo "Otra linea mas en test02 - B" > test02 git status git diff git add. && git commit -m "Nuevos cambios mensaje para el commit" git commit --amend -m "He cambiado el mensaje del commit" git log gitk --all 31 /

Working with remote repository cd ~/repo1 git clone --bare.../repo-remoto.git #Mismo contenido que /.git en repo1 ls ~/repo-remoto.git 32 /

Working with remote repository Enviar cambios a un repositorio remoto cd ~/repo01 echo "Hello, hello. Turn your radio on" > test01 echo "Bye, bye. Turn your radio off" > test02 git commit -a -m "Algunos cambios" # Push git push../repo-remoto.git 33 /

Working with remote repository Cambios #desde el ultimo commit git diff #desde ayer git diff "@{yesterday}" #desde una versión concreta y 2 versiones hacia atrás git diff SHA1_HASH "master~2" #Recuperar una versión concreta git checkout SHA1_HASH 34 /

Branches git branch #incluye ramas remotas git branch -a git branch rama1 git checkout rama1 echo "En la rama1" > test01 git commit -a -m "Algunos cambios en la nueva rama" #volver a la rama principal git checkout master cat test01 35 /

Branches 36 /

Merging git merge rama1 #resolver el conflicto a mano git mergetool <<<<<<< HEAD Change in the first repository ======= Change in the second repository >>>>>>> b29196692f5ebfd10d8a9ca1911c8b08127c85f8 #eliminando rama git branch -d probando 37 /

Rebase touch rebase.txt git add. && git commit -m "rebase.txt añadido" echo "primera linea" >> rebase.txt git add. && git commit -m "contenido" echo " otra linea mas" >> rebase.txt git add. && git commit -m "mas contenido" echo "Tercera linea" >> rebase.txt git add. && git commit -m "Una tercera linea" echo " esta es la ultima" >> rebase.txt git add. && git commit -m "Ultima linea de código" git log stat git log --pretty=format:"%h - %an, %ar : %s" git log --pretty=oneline git rebase -i HEAD~4 38 /

Merging git merge rama1 #resolver el conflicto a mano git mergetool <<<<<<< HEAD Change in the first repository ======= Change in the second repository >>>>>>> b29196692f5ebfd10d8a9ca1911c8b08127c85f8 #eliminando rama git branch -d probando 39 /

Git Hosting Provider Github (ssh key) $ cd ~/.ssh (existe??) Ls mkdir key_backup cp id_rsa* key_backup rm id_rsa* ssh-keygen -t rsa -C "your_email@youremail.com" 40 /

Git Hosting Provider 41 /

Git Hosting Provider Github 42 /

Git Hosting Provider Github 43 /

Git Hosting Provider 44 /

Av. Juan López de Peñalver, 21 Parque Tecnológico de Andalucía Málaga - España (+34) 918 38 38 58 http://www.opentia.com