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

Índice
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

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 : http://kumbiaphp.info/buscan-nuestro-repositorio-conclusion-de-soyprogramador-liz-mx/


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
5 Repositorios
$10
10 Usuarios
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 http://git-scm.com/book/es/Empezando-Instalando-Git

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:

http://sourceforge.net/projects/git-osx-installer/

git_osx_installer.png
git_osx_installer.png


La otra manera es instalar Git a través de MacPorts (http://www.macports.org).
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:

http://msysgit.github.com/

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


config.png

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:

registro.png

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


url.png

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

cd.png
cd.png

y a continuación:

git clone url NombreCarpeta

Ejemplo:

git clone https://github.com/MendeleievBros/Proyecto.git proyecto

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


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 .


add.png
add.png




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



commit_terminal.png
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.
push.png
push.png



9 - Ramas

Fragmento de http://git-scm.com/book/es/Ramificaciones-en-Git-%C2%BFQu%C3%A9-es-una-rama%3F

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


commit.png
commit.png



  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")