Iniciando con Git y Github / Bitbucket

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

Descargar

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 git@github.com: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 git@github.com: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 git@github.com: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.

Referencia

Git
GitHub
Agent Error

Share on Google+Share on LinkedInShare on RedditShare on TumblrTweet about this on TwitterShare on Facebook
  • Claribel

    Buen tuto, me gustó mucho, es fácil de entender y explica todo bien detallado.