Git

Con esta guía aprenderemos a utilizar git en nuestro ordenador y conectarlo con github.

1- Que es Git? 2- Para que sirve? 3- Repositorio web 4- Utilidad en un proyecto 5- Instalación 6- Primeros pasos 7- Primer commit 8-Compartir 9-Ramas
 * Índice**

**1- Que es Git?**
Git es un controlador de versiones, es decir, un programa que nos facilita el control y desarrollo de nuestro proyecto.

**2- Para que sirve?**
Es muy util si tienes que desarrollar un proyecto. Gracias a la integración con la web(punto 3), podemos compartir los avances en tiempo real, facilitar el desarrollo en grupo, al tener todos la misma versión, viendo los cambios y los fallos y facilita la auditoría del programa.

**3- Repositorio web**
Solo puedes sacar todo el jugo a git, si lo conectas con algún repositorio web. Los más famosos son Github y Bitbucket: Aquí dejo una comparativa sacada de : []

//5 Repositorios// || $10 10 Usuarios ||
 * ~  ||~ GitHub ||~ BitBucket ||
 * Repositorios gratuitos || Si || Si ||
 * Repositorios privados gratuitos || No || Si ||
 * Wiki para nuestro proyecto || Si || Si ||
 * Followers/amigos || Si || Si ||
 * Watch || Si || Si ||
 * Clonar/fock || Si || Si ||
 * Usuarios ilimitados por repositorios || Si || No ||
 * Repositorios ilimitados || No || Si ||
 * Costo plan más básico (Mensual). || //$7//
 * Transferir repositorios || No || Si ||
 * Social || Muy social || Social ||
 * Url personalizada || No || Si ||
 * Personalización del sitio || No || No ||

**4- Utilidad en un proyecto**
Utilizar git+github en un proyecto, te aporta facilidad a la hora de compartir tu proyecto,mayor control y seguridad, al tener copia de seguridad de todos los cambios, facilidad de colaborar con tus compañeros y controlar los fallos y sus soluciones.

**5- Instalación**
depende de que sistema tengas, se instala de manera diferente, pero a la hora de utilizarlo, es casi idéntico.

Fragmento de []

**//Instalando en Linux//**
//Si quieres instalar Git en Linux a través de un instalador binario,// //en general puedes hacerlo a través de la herramienta básica de gestión de paquetes que trae tu distribución.// //Si estás en Fedora, puedes usar yum://

//$ yum install git-core//

//O si estás en una distribución basada en Debian como Ubuntu, prueba con apt-get://

//$ apt-get install git//

**//Instalando en Mac//**
//Hay dos maneras fáciles de instalar Git en un Mac. La más sencilla es usar el instalador gráfico de Git,// //que puedes descargar desde la página de SourceForge://

//[]///



//La otra manera es instalar Git a través de MacPorts ([]).// //Si tienes MacPorts instalado, instala Git con://

//$ sudo port install git-core +svn +doc +bash_completion +gitweb//

//No necesitas añadir todos los extras,//

**//Instalando en Windows//**
//Instalar Git en Windows es muy fácil.// //El proyecto msysGit tiene uno de los procesos de instalación más sencillos.// //Simplemente descarga el archivo exe del instalador desde la página de GitHub, y ejecútalo://

//[]///

//Una vez instalado, tendrás tanto la versión de línea de comandos (incluido un cliente SSH que nos será útil más adelante)// //como la interfaz gráfica de usuario estándar.//

//Nota para el uso en Windows: Se debería usar Git con la shell provista por msysGit (estilo Unix),// //lo cual permite usar las complejas líneas de comandos de este libro. Si por cualquier razón se necesitara// //usar la shell nativa de Windows, la consola de línea de comandos, se han de usar las comillas dobles en vez de las simples// //(para parámetros que contengan espacios) y se deben entrecomillar los parámetros terminándolos con el acento circunflejo (^)// //si están al final de la línea, ya que en Windows es uno de los símbolos de continuación.//

**6- Primeros pasos**
Como la mayoría de programas open-source, hay que configurarlo y personalizarlo. Git incluye la herramienta git config para establecer las variables necesarias.

Abrid la terminal y escribid esto:

$ git config --global user.name "mendeleievbros" --> para establecer el nombre de usuario $ git config --global user.email correo@servidor.com --> para establecer el correo



el parámetro "--global", especifica que esos datos serán utilizados en todos los proyectos. Para cambiarlos en algún proyecto, en la carpeta del proyecto, ejecutad la sentencia sin este parámetro.

$ git config --global core.editor editor_texto

Con esta sentencia, indicas el editor de texto que utilizarás en caso de tener que escribir algo. Este paso se puede omitir.

Ahora hay que conectar git con github.

Para eso hay que crear una cuenta en github:



y crear un proyecto. Una vez creado, en la ventana del proyecto, aparece una dirección.



En la terminal, te diriges a la carpeta que contendrá la carpeta del proyecto. Si la ruta del proyecto es proyectos/prueba/

En linux:

cd proyectos

y a continuación:

git clone url NombreCarpeta

Ejemplo:

git clone [] proyecto

en la carpeta proyecto se "clonara" los archivos básicos de un proyecto.

**7- Primer commit**
Ahora, podemos hacer las modificaciones que queramos en esa carpeta, añadiendo o eliminando los archivos necesarios. una vez queremos guardar el estado del proyecto, se hace un commit.

Se abre la terminal y se va a la carpeta del proyecto.

cd proyectos/proyecto

ahora hay varias sentencias que tendremos que sabernos.

**git status:**
sirve para ver los cambios hechos a los archivos.

hay varios apartados: changes to be commited: son los cambios que se guardarán. archivos modificados: Son los archivos modificados archivos no seguidos: Son los archivos añadidos. y que git no tiene guardados.

**git add:**
sirve para añadir un archivo al apartado "changes to be commited".

vemos que hay el archivo "main.py" que aparece en los no seguidos. si hacemos git add main.py, veremos lo siguiente:

**git rm:**
es el contrario de git add, sirve para dejar de seguir un archivo, o eliminar un archivo.

Modificamos y añadimos los archivos deseados. como ya tenemos todos los cambios que queremos hacer, y queremos guardar el proyecto en ese punto, haremos un commit.

git add.



git commit -m "descripción de los cambios"

git commit es la sentencia básica, con -m indicamos que añadimos la descripción sin tener que abrir un procesador de texto.

con esto, git guardará en ese punto los archivos, pudiendo ir a la versión anterior en caso de error.

**8- Compartir**
cuando queremos compartir en la web, solo hay que hacer :

git push

y ya se compartirán todos los avances en nuestra web de github.

**9 - Ramas**
Fragmento de []

//¿Qué es una rama?//
//Para entender realmente cómo ramifica Git, previamente hemos de examinar la forma en que almacena sus datos. Recordando lo citado en el capítulo 1, Git no los almacena de forma incremental (guardando solo diferencias), sino que los almacena como una serie de instantáneas (copias puntuales de los archivos completos, tal y como se encuentran en ese momento).// //En cada confirmación de cambios (commit), Git almacena un punto de control que conserva: un apuntador a la copia puntual de los contenidos preparados (staged), unos metadatos con el autor y el mensaje explicativo, y uno o varios apuntadores a las confirmaciones (commit) que sean padres directos de esta (un padre en los casos de confirmación normal, y múltiples padres en los casos de estar confirmando una fusión (merge) de dos o mas ramas).//

Pongamos un ejemplo: Tenemos nuestro proyecto con los siguientes archivos: -README.md -index.php

Hacemos un commit, y ya tenemos estos archivos guardados.

Ahora, queremos modificar el archivo README para explicar los métodos de instalación. Volvemos a hacer un commit. Git, guardará esto:


 * 1) El número identificador que da git a cada commit para identificarlo.
 * 2) Otro número identificador que informa de la pertenencia de ese commit.
 * 3) Cual es el commit anterior.
 * 4) Quien ha hecho ese commit.
 * 5) La descripción añadida en la terminal(git commit -m "descripción de los cambios")