El día de hoy es normal que todos conozcamos git y GitHub, y es casi imposible comenzar un proyecto sin hacer un «git init» antes de tirar la primera linea, así que por motivos como esos, es este tutorial; Aparte de los confuso que puede ser en ocasiones configurar GitHub.
En caso de tener claro los conceptos de que es y para que usar git/Github pasar a la instalación directamente.
Git
Git es un controlador de versiones de código, una característica de este sistema es que es descentralizado, que quiere decir esto? Bueno que una vez realizas cambios en tu código base puedes persistir esos cambios (commit) sin necesidad de llevar esos cambios al repositorio maestro (master) a diferencia de otros sistemas que los cambios solo se realizan en el master y no en tu copia de trabajo, alternativas a este se encuentran SVN, Mercurial y demás productos de paga, git puede ser usado localmente si necesidad de tener una cuenta en GitHub o en Bitbucket.
- Repositorio: El repositorio es nuestro entorno donde tenemos nuestro código.
- Branch: Son secciones en nuestro repositorio, un repositorio puede tener cuantos brach necesite.
- Tag: Son copias de un branch en x momento en el tiempo, es muy usado digamos para realizar lanzamientos. Un nombre de un tag podría ser v1.0.0.1, pongo ese nombre para que se entienda mas o menos por donde va la cosa.
- Merge: Esto es un proceso que se realiza cuando digamos varios usuario realizaron cambios en un mismo archivo y el ultimo en hacer commit no tiene la ultima version del código, por lo que tendra que hacer un merge y es ver cuales son sus cambios y agregarlos a la ultima version del código.
GitHub
Github simplemente es un servidor que almacena lo que subas ahi arriba y este usa git, al final del dia es otro repositorio que tienes ahi arriba al igual pasa con Bitbucket.
Instalación
La instalación es bien simple
En linux es tan solo este comando
//ubuntu sudo apt-get install git //centos / fedora sudo yum install git
En windows aun es mas facil es solo ir a este pagina y descargar el .exe
Utilizarlo
Comandos básicos
git add
Este comando es usado cuando queremos agregar un cambios realizado en un archivo.
git add
De esta forma se agregara todos los cambios realizados en el directorio actual.
git add .
git commit
Este comando es para persistir los cambios agregados con git add.
git commit -m "mensaje del commit"
De esta forma se realiza un commit agregando una descripción de los cambios realizados.
git pull
Este comando es utilizado para traer cambios realizados por otras personas al repositorio maestro.
Esta es la forma como se extraen los cambios realizados en el repositorio maestro por otros usuarios.
git pull origin master
git remote
Comando utilizado para configurar y/o ver nuestros repositorios remotos.
git remote -v
git remote add origin [email protected]:Night-Developer/test-git.git
git checkout
Comando utilizado para crear una copia de un repositorio remoto y crear una copia local, donde realizaremos nuestros cambios.
git checkout [email protected]:Night-Developer/test-git.git
git push
Comando utilizado para subir los commits que hayamos realizado y no este en nuestro repositorio remoto.
git push nombre_de_origen branch
git push origin master
Configurar nuestro Git local con GitHub
Github utiliza un tipo de seguridad donde no usamos claves o al menos no las que estamos acostumbrados a usar, github utiliza un sistema de seguridad de 2 llaves ( RSA ), donde deben ser generadas en nuestra maquina para que git las use y pueda hacer los push.
Para generar dichas claves basta solo con ejecutar este comando:
ssh-keygen -t rsa -C "email"
De esta forma se estarán creando 2 archivos en ~/.ssh/ uno *.pub y otro sin extensión pero con el mismo nombre que el anterior ejemplo id_rsa.pub y id_rsa.
Una vez creados los archivos debemos ejecutar este comando
ssh-add
Esto sirve para decirle a git que llaves estará usando, al no pasarle parámetros tomara los de por defecto (~/.ssh/id_rsa) y todo estara listo para configurar github, Si les da un error al ejecutar ese comando algo como Could not open a connection to your authentication agent esto es que el ssh-agent no inicio correctamente al iniciar el sistema o algo raro paso.
Para solucionar esto del agent basta con lanzar uno de estos comando:
ssh-agent
Si no funciona ejecutar este:
eval `ssh-agent -s`
Y si estas en Windows
eval $(ssh-agent)
Y luego ejecutar nuevamente
ssh-add
Estos 2 archivos son nuestras llaves, hay una publica (*.pub) y la otra la privada, debemos mantener en secreto la privada, la llave publica abrimos ese archivo y el contenido lo agregamos a GitHub Settings > Ssh keys > Add SSH Key agregar el contenido de la llave publica y salvar.
cat ~/.ssh/id_rsa.pub
Si todo esta bien, podrán interactuar con Github sin problemas.
Una vez todo correcto pasar el ejemplo 🙂
Ejemplo
Primero creamos nuestro repositorio local (el repositorio puede ser creado de forma remoto al igual)
git init
Luego creamos un archivo cualquiera en ese directorio
echo "hola mundo git" >> test.txt
Agregamos los cambios realizados en el directorio
Puede ser (Agregar todos los cambios del directorio)
git add .
O puede ser igual (o simplemente agregar el archivo que sabemos que modificamos)
git add test.txt
Una vez realizado esto solo es necesario hacer un push a alguno de nuestros origenes que hayamos configurado.
Para configurar un origen (origin) se realiza de esta forma:
git remote add nombre-del-origen
Un ejemplo seria este
git remote add test_origin [email protected]:Night-Developer/test-git.git
Para hacer push a nuestro origen agregando reciente mente basta con:
git push test_origin master
Para listar los origenes que tenemos configurado usamos
git remote -v
Para cambiar la url de un origen
git remote set-url nombre-del-origen nueva_url
Luego de hacer push sus cambios estarán en Github 🙂 y a divertirse haciendo commits y pushs y pulls en caso de estar trabajando en equipo.