Usuario:ManuelRomero/Git

Qué es Git
200px|center

400px|center Imagen:gitDescentralizado.png
 * Página oficial https://git-scm.com/
 * Concepto de git
 * Esto implica que podemos establecer estados o versiones y podemos, en un momento dado, recuperar ese fichero o conjunto de ficheros a una versión concreta.
 * Esto también conlleva intrínsecamente copias de seguridad (Una por cada versión).
 * Con git puedo (debo) tener una copia del proyecto en un momento dado en mi local a partir de un servidor donde está el código del proyecto. Después de trabajar en local lo volveré a dejar en el servidor
 * Ventajas
 * Recupear el conjunto de ficheros (1 0 más) de una versión concreta.
 * Analizar los cambios realizados entre dos versiones
 * Ver el seguimiento de un proyecto o preceso de realización de los ficheros / Aplicaciones.
 * Ver quién y cuándo ha realizado cambios.
 * En general controlar la evolución del proyecto.
 * Git como un sistema descentralizado
 * Centralizado Vs Descentralizado
 * Sistema centralizado
 * Todas las operaciones se hacen sobre un servidor
 * Sistema descentralizado
 * Las operaciones las hacemos sobre un local (En local tenemos que tener un repositorio).
 * Cuando queremos, podemos subir los cambios a un servidor.
 * Del servidor podemos volver a establecer un estado de partido o establecer un repositorio en local

Funcionamiento de Git
https://git-scm.com/book/en/v2/book/01-introduction/images/snapshots.png
 * Funciona como un sistema descentralizado
 * Cada vez que guardamos cambios hace una copia del proyecto tal cual está
 * Si algún fichero no tuvo ningún cambio desde la última versión simplemente se hace un enlace al archivo anterior
 * Este concepto se conoce como hacer una foto instantáea de tu proyecto snapshots.

https://git-scm.com/book/en/v2/book/01-introduction/images/deltas.png
 * Esta es una importante diferencia con otros sistemas de gestión de versiones tipo Subversion que almacena los cambios de los fichero del proyecto en cada versión del mismo y no el fichero completo.
 * Git funciona en local.
 * Esto da mucha rapidez en las operaciones y mucha flexibilidad para trabajar.
 * En la mayoría de otros CVS, dependemos de la red y un servidor para poder trabajar
 * Usar git te garantiza que puedes retornar a cualquir versión de tu proyecto en cualquier momento. Esto en mas de una ocasión te generará una sensación de alivio inigualable.

Los tres estados de GIT

 * Cuando trabajamos con git, establecemos un directorio para especificar el conjunto de ficheros que queremos controlar
 * Vamos a pensar que es el proyecto sobre el cual vamos a realizar la gestión de versión
 * Cada fichero de ese proyecto va a tener uno de tres estados posibles (En lo que se refiere a su control con git)
 * Confirmado es un estado de un fichero que ya ha sido subido a nuestro repositorio o bien que acabamos de clonar de él
 * Modificado cuando un fichero es modificado en local pasa a este estado
 * Preparado Es un fichero modificado y preparado para ser subido a un repositorio

Instalando git
sudo apt-get install git git clone git://git.kernel.org/pub/scm/git/git.git
 * desde el repositorio
 * Actulizando git
 * Desde el repositorio de git

Configurando git
git config git config --global user.name Manuel git config --global user.mail ManuelRomeroMiguel@gmail.com git config --global core.editor vim git config --list git config git config user.name git help
 * Ver opciones de configuracion
 * Ficheros de configuracion:
 * 1) Para todos los usuarios del sistema y todos sus repositorios /etc/gitconfig
 * 2) Para el usuario actualmente conectado en local $HOME/.config/git/config
 * 3) Para el repositorio actual ./.git/config
 * Configurando usuarios
 * nombre
 * Direccion de correo
 * Editor
 * Ver el valor de parámetros configurados
 * Ver un valor concreto
 * Obtener ayuda

Iniciar el trabajo con git
git init
 * Iniciar el proyecto con git
 * En el directorio a gestionar
 * Ahora existe un directorio llamado .git donde está el repositorio local

Creando un repositorio de un proyecto

 * En el


 * Ver configuracion

Instalado zsh
https://github.com/robbyrussell/oh-my-zsh

Es un sistema desarrollado por Torwal Linux (ver aquí su historia).