Publicado el 24 de Enero del 2019
1.139 visualizaciones desde el 24 de Enero del 2019
1,7 MB
19 paginas
Creado hace 11a (12/12/2013)
Jesús Rodríguez Villalobos
UNIVERSIDAD DE ALMERÍA
AMPLIACIÓN DE INGENIERÍA DEL SOFTWARE
Jesús Rodríguez Villalobos
Curso académico 2013-14
5º Ingeniería Informática
Universidad de Almería
1
Jesús Rodríguez Villalobos
1. Capítulo 1: INTRODUCCIÓN
1.1 Acerca del control de versiones
1.2 Una breve historia de GIT
1.3 Fundamentos de GIT
1.4 Instalando GIT
1.5 Configurando GIT por primera vez
2. Capítulo 2: FUNDAMENTOS DE GIT
2.1 Obteniendo un repositorio GIT
2.2 Guardando cambios en el repositorio
2.3 Viendo el histórico de confirmaciones
2.4 Deshaciendo cosas
3. Capítulo 3:Git en un servidor
3.1 Crearnos una cuenta en github
3.2 Establecer relación entre ordenador y github
3.3 Crearnos un repositorio en github
3.4 Conectar repositorio local con repositorio github
4. Bibliografía
2
1. Capítulo 1: INTRODUCCIÓN
Jesús Rodríguez Villalobos
Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la
eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas
tienen un gran número de archivos de código fuente.
1.1 Acerca del control de versiones
Un sistema de control de versiones trata de un sistema que registra todos los cambios
realizados sobre un archivo o conjunto de archivos a lo largo del tiempo, de modo que
podemos recuperar cualquier versión específica más adelante. El control de versiones
se puede realizar tanto para versiones de código fuente como para casi cualquier tipo
de archivo.
Tenemos diferentes sistemas de control de versiones:
- Sistemas de control de versiones locales.
- Sistemas de control de versiones centralizados.
- Sistemas de control de versiones distribuidos.
Como GIT se trata de un sistema de control de versiones distribuido, vamos a tratar un
poco de que trata este sistema de control de versiones.
En un DVCS (Distributed Version Control Systems) cuando el cliente descarga archivos
del repositorio, no sólo descarga la última instantánea de los archivos, también replica
completamente el repositorio. De esta manera, si un servidor muere y hay clientes que
estaban colaborando con él, cualquiera de los repositorios de cualquier cliente puede
copiarse en el servidor para restaurarlo.
Cada vez que se hace una descarga de una instantánea, estaríamos haciendo una copia
de seguridad completa de todos los datos del repositorio.
3
Jesús Rodríguez Villalobos
En muchos de estos sistemas, trabajan con varios repositorios, de forma que
podríamos trabajar con diferentes grupos de gente de forma simultánea dentro del
mismo proyecto, de esta manera podemos decir que tendríamos diferentes flujos de
trabajo que no serían posibles en sistemas centralizados.
1.2 Una breve historia de GIT
En 2005 se produjo la separación entre BitKeeper y la empresa que estaba
desarrollando el núcleo de Linux por dejar de ser gratuita. De esta forma la comunidad
de Linux decidió desarrollar su propia herramienta basada en las lecciones que
aprendieron durante el uso de BitKeeper.
Podemos destacar una serie de características que quisieron tomar como objetivos
base a la hora de desarrollar su propia herramienta:
- Velocidad.
- Diseño sencillo.
- Fuerte apoyo al desarrollo no lineal (ramas).
- Sistema distribuido.
- Capaz de manejar proyectos de gran dimensión.
1.3 Fundamento de GIT
Git almacena y modela la información de forma muy diferente a los demás sistemas de
VCSs, como Subversion y Perforce.
4
Jesús Rodríguez Villalobos
1.3.1
Instantáneas, no diferencias
Forma de almacenar la información los VCS y GIT:
Esta sería la forma de almacenar la información los sistemas VCS Subversion y demás.
Como podemos observar se almacena la información como un conjunto de archivos y
las modificaciones hechas sobra cada uno de ellos a lo largo del tiempo.
Esta sería la forma de almacenar la información los sistemas GIT. Como podemos
observar, GIT almacena los datos como un conjunto de instantáneas. Cuando
confirmamos un cambio, GIT realiza una instantánea del estado de tu proyecto en GIT
y guarda una referencia de dicha foto. Por eficiencia, si no se ha realizado ninguna
modificación, GIT no almacena un archivo nuevo, sino que guarda un enlace al archivo
anterior idéntico al que ya teníamos almacenado.
1.3.2 La mayoría de las operaciones son locales
GIT sólo necesita archivos y recursos locales para operar. Como tenemos toda la
historia del proyecto en nuestro disco local, la mayoría de las operaciones se realizan
de forma muy rápida en comparación con los demás sistemas VCSs.
5
Ejemplos:
Jesús Rodríguez Villalobos
- Para obtener la historia de un proyecto, sólo tendríamos que leer de
nuestra base de datos local.
- Para ver cambios introducidos en la versión actual de un archivo y la versión
de este mismo archivo hace un mes, GIT puede hacer el cálculo de
diferencias localmente.
- Si no tenemos internet, podremos trabajar de forma normal hasta obtener
conexión de internet y subir los nuevos datos.
1.3.3
Integridad
Todo en Git es verificado mediante una suma de comprobación antes de ser
almacenado, de esta forma es imposible cambiar contenidos de cualquier archivo o
directorio sin que GIT lo sepa.
1.3.4 Estados
Los archivos en GIT se pueden encontrar en tres estados diferentes:
- Confirmado: Los datos están almacenados de forma segura en tu base de
datos local.
- Modificado: El archivo ha sido modificado pero no se ha confirmado a tu
base de datos local.
- Preparado: Se trata de marcar un archivo modificado como preparado para
que vaya a la base de datos local en tu próxima confirmación.
En un proyecto de GIT nos encontramos con tres áreas diferentes:
- El directorio de trabajo: Copia de una versión del proyecto.
- El área de preparación: Se trata de un archivo que almacena la información
acerca de lo que va a ir en tu próxima confirmación.
- El directorio de GIT: donde GIT almacena los metadatos y la base de datos
de objetos para tu proyecto.
6
Jesús Rodríguez Villalobos
1.4 Instalando GIT
Para instalar GIT lo podemos hacer de dos formas, desde código fuente o instalar un
paquete existente para tu plataforma.
En nuestro caso lo vamos a instalar en Windows, simplemente tenemos que descargar
el instalador de la siguiente web:
http://code.google.com/p/msysgit
Una vez instalado tenemos la versión de línea de comando.
1.5 Configurando GIT por primera vez
Establecer identidad:
Establecer nombre de usuario y correo electrónico. Esta información es usada por GIT
cuando realizas los commits.
7
Jesús Rodríguez Villalobos
Elegir editor:
Se trata del editor de texto que GIT utilizará si necesita que introduzcas algún mensaje.
Por defecto GIT suele utilizar Vi o Vim aunque también puedes utilizar cualquier otro
como Emacs.
En nuestro caso vamos a utilizar Emacs
Elegir herramienta de diferencias:
Se trata de elegir la herramienta que queremos que GIT utilice para resolver los
conflictos de unión (merge).
Git acepta las siguientes herramientas: kdiff3, tkdiff, meld, xxdif, emerge, vimdiff,
gvimdiff, ecmerge y opendiff.
En nuestro caso vamos a utilizar vimdiff:
Comprobar configuración:
Si queremos ver la configuración que llevamos realizada lo podemos hacer de la
siguiente manera:
8
Jesús Rodríguez Villalobos
2. Capítulo 2: FUNDAMENTOS DE GIT
En este capítulo aprenderemos a configurar e inicializar un repositorio, comenzar y
detener el seguimiento de archivos, y preparar (stage) y confirmar (commit) cambios.
También enseñaremos a configurar Git para que ignore ciertos archivos y patrones,
cómo deshacer errores rápida y fácilmente, cómo navegar por la historia de tu
proyecto y ver cambios entre confirmaciones, y cómo enviar (push) y recibir (pull) de
repositorios remotos.
2.1 Obteniendo un repositorio GIT
Podemos obtener un repositorio de dos formas diferente:
- Cogemos un directorio existente y lo importamos a GIT.
- Clonando un repositorio existente de otro servidor.
2.1.1
Inicializar un repositorio en un directorio existente
9
Jesús Rodríguez Villalobos
Hemos creado una carpeta “Ejemplo1” y con el comando “git init” creamos un
subdirectorio .git que contiene todos los archivos necesarios del repositorio.
Para empezar a controlar versiones de archivos, vamos a crear por ejemplo un
“readme.txt” y mediante el comando “git add” vamos a especificar que archivos
queremos controlar.
2.1.2 Clonar un repositorio existente
Se trata de obtener una copia de un repositorio Git existente, simplemente
utilizaremos el siguiente comando “git clone url”
2.2 Guardando cambios en el repositorio
Cada archivo puede estar en dos estado diferentes, en seguimiento (tracked) o sin
seguimiento (untracked).
Todos los archivos que tienes desde tu última instantánea están en seguimiento
mientras que todos los demás están untracked (cualquier archivo que no estuviese en
tu última instantánea ni está en tu área de preparación).
Cuando clonar un repositorio como hemos hecho nosotros anteriormente, todos los
archivos se encuentran en seguimiento y sin modificaciones.
Una vez clonado un repositorio pasaríamos a modificar archivos, de esta manera GIT
los vería como modificados porque los has cambiado desde tu última confirmación.
10
Jesú
Comentarios de: Memoria introducción Git (0)
No hay comentarios