affiliate_link

Introducción a Git y GitHub

Este tutorial es una guía que explica lo necesario para poder instalar Git y cómo utilizarlo con GitHub y aprovechar los miles de repositorios públicos que existen.

Conoceremos brevemente que es Git – GitHub, y veremos como instalarlo adecuadamente, cómo crear un repositorio local, cómo conectarlo con el repositorio remoto en GitHub, cómo enviar nuestras modificaciones, cómo obtener los cambios realizados por otros colaboradores del proyecto, cómo clonar otros repositorios públicos, entre otras tareas comunes.

Guía básica de Git y GitHub

¿Qué es Git?

Git es un software de control de versiones.

Ok… en otras palabras…

No es más que la gestión de cambios que se realizan sobre un repositorio.

¿Qué es un repositorio?

Un repositorio es el lugar donde se alojan todos los archivos de un determinado proyecto.

¿Es el único?

No. Existen muchos otros sistemas de control de versiones, llamados VCS por sus siglas en ingles “Version Control System”, como: Subversion, Mercurial, Perforce, entre otros. Sin embargo, desde hace ya muchos años, Git es desde lejos, el mejor y el más usado de entre todos ellos.

Entonces… a la acción… Instalemos Git

Cabe resaltar que en este tutorial, mostrare comandos para Ubuntu – Linux. La gran mayoría de comandos, son los mismos si usas Windows o Mac, pero bueno… soy fan de Linux.

sudo apt-get install git

Con este comando, ya tendremos instalado Git en nuestra maquina.

Creando un repositorio local

Solo debes ir hacia la ubicación de la carpeta donde deseas trabajar y ejecutar:

git init [proyecto]

Con ello, habrás iniciado Git.
Opcionalmente, puedes colocar seguido el nombre del repositorio para que cree una carpeta con el nombre del especifico proyecto.

Puedes comprobar ello, verificando que existe la carpeta oculta .git.

Registrar los cambios realizados

Git detecta los nuevos archivos agregados, los eliminados y los modificados.
Para ir registrando estos cambios, se puede ejecutar lo siguiente:

git add [carpeta/archivo]
git rm [carpeta/archivo]
git add --all
git commit -m "mensaje descriptivo de los cambios"

El primer comando nos permite agregar archivos nuevos y modificados. Se puede colocar una carpeta para agregar todos los archivos en ella, o un archivo en especifico. Así mismo, se pueden colocar varias carpetas/archivos separados por un espacio.

El segundo comando nos permite agregar los archivos eliminados del repositorio.

El tercer comando agrega todo.

Finalmente, con el cuarto comando, registramos nuestros cambios anteriormente agregados.

Cabe resaltar, que con esto, estamos guardando nuestros cambios en el repositorio local. Aun no lo hemos enlazado con un repositorio remoto en la nube.

Revisando el estado de los archivos

Cuando se van realizando cambios en el proyecto, lo apropiado es ir verificando que todo este como debe estar, es decir, antes de registrar nuevos cambios, lo correcto es revisar el estado del repositorio para no llevarnos sorpresas.

git status

Cuando vayas progresando, y haciendo cosas mas avanzadas con Git, cuando trabajes en equipo, con ramas y obtengas conflictos… Siempre recurre a este comando y lee bien lo que aparece en el terminal.

¡Listo! Ya sabes lo esencial de Git para trabajar con tus propios proyectos locales.

¿Y que hay de los repositorios remotos?

Como comentaba, Git te permite mantener tu proyecto versionado, almacenando un historial de los cambios realizados. Ahora bien, estos repositorios locales, podemos sincronizarlos con repositorios remotos en la nube.

Esto se puede hacer instalando un servidor Git en uno de nuestros servidores en la nube, pero esto es algo complejo al inicio. Para evitar ello, tenemos varias propuestas que nos permiten manejar nuestros repositorios en la nube, tales como: GitHub, GitLab, GitBucket.

Entonces… ¿Qué es GitHub?

Github es una plataforma de desarrollo colaborativo que permite alojar proyectos usando el sistema de control de versiones Git. Los archivos se almacenan de forma pública, aunque también se puede hacer de forma privada, con una cuenta de pago o si es por un tema de educación al cual se debe postular.

Trabajando con Git y GitHub
Sin embargo, el potencial de Github no sólo radica en el alojamiento de proyectos en la nube, si no muchas más grandes opciones, como lo son los Forks (clonar un repositorio público y hacerlo nuestro), Issues (incidencias que se pueden reportar y resolver colaborativamente), Pull Requests (aceptar cambios enviados desde otro origen, ejemplo: un fork), Diffs (visualizar diferencias en la línea de tiempo, es decir, comparar los nuevos cambios con pasados), entre otras geniales características que tiene GitHub.

Entonces… que continué la acción… ¡GitHub a la carga!

Lo primero que debes hacer, es crearte una cuenta en GitHub.

Luego debemos configurar nuestra maquina para poder sincronizarla con nuestra cuenta de GitHub. Para ello, debes ejecutar:

git config --global user.name "Nombre que aparecerá en GitHub"
git config --global user.email "Correo electrónico de la cuenta GitHub creada"
ssh-keygen -t rsa -C "Correo electrónico de la cuenta GitHub creada"
cat ~/.ssh/id_rsa.pub

Los 2 primeros comandos, son para que al enviar nuestros commits, aparezcamos como autores.
Los tercer comando, es para generar una llave ssh para poder conectarnos con GitHub sin tener la necesidad de autenticarnos en cada envio.
Por último, el cuarto comando, es para imprimir en el terminar todo el contenido de la llave pública recientemente creada, la cual debemos copiar y pegarla en el contenido de un nuevo ssh key que debemos crear en nuestra cuenta de GitHub.

Una vez hecho ello, ya tenemos sincronizada nuestra maquina con nuestra cuenta de GitHub. Ahora debemos proceder con crear nuestro repositorio.

Conectando nuestro repositorio local con el de GitHub

Hacemos clic en el signo más (+) en la esquina superior derecha de la web y seleccionar la opción “crear nuevo repositorio”.

Luego de haber creado el repositorio remoto, debemos sincronizarlo con nuestro repositorio local, creado previamente. Para ello, ejecutamos lo siguiente:

git remote add origin git@github.com:USUARIO/REPOSITORIO.git

Esa dirección podemos encontrarla entre el menú superior en la página de nuestro repositorio remoto creado en GitHub, en la opción SSH.
Debes reemplazar USUARIO por tu nombre de usuario y REPOSITORIO por el nombre de tu repositorio creado (el cual de preferencia, debería tener el mismo nombre que tu repositorio local).

Clonando el repositorio remoto

Si se diera el caso, de que no se tiene un repositorio local (no se hizo “git init”), sino que en su lugar, primero se ha creado el repositorio en GitHub y queremos descargarlo para usarlo en local. Esto se logra con el comando:

git clone git@github.com:USUARIO/REPOSITORIO.git

Al igual que en el proceso anterior, se deben reemplazar los datos correctos.
Con este mismo comando, puedes clonar repositorios públicos de terceros para poder trabajarlos en local.

Enviando nuestros cambios al repositorio remoto

Ahora que ya tenemos conectado nuestro repositorio local con el remoto en GitHub, ya solo nos queda enviar todos nuevos cambios. Para ello usamos:

git push origin master

Con “git push”, estamos empujando nuestros cambios realizados (commits) al repositorio remoto conectado previamente, en este caso con el nombre “origin”, y todo ello se esta enviando a la rama “master”, que es la que se crea por defecto.

¿Eso es todo?… ¡NO!

Hasta el momento, ya hemos visto brevemente los conceptos básicos para poder trabajar con Git y GitHub. Sin embargo, una de las mejores cosas que trae consigo desarrollar usando esto, es el trabajo colaborativo, donde cada miembro del equipo, sube sus cambios al repositorio remoto donde todos trabajan juntos, y es ahí donde por ahora, nos falta ver un último comando.

Actualizando nuestro repositorio local

Cuando existen cambios en el repositorio remoto, los cuales no tenemos en nuestro repositorio local, estos se pueden obtener con el siguiente comando.

git pull origin master

Git push, es muy parecido al “git pull”, con la única y obvia diferencia, que en lugar de empujar los cambios al repositorio remoto, los estamos jalando del repositorio remoto a nuestro repositorio local. Del mismo modo, jalando del repositorio remoto “origin” y de la rama “master”.

¿Ahora si es todo?… ¡NO!

Este tutorial ha llegado a su fin, esperando haber cumplido su objetivo, de dar a conocer los conceptos y comandos básicos para poder introducirnos en el mundo de Git. Sin embargo, lo que hemos visto no es todo.

Faltan muchas otras utilidades y comandos de Git (branch, checkout, merge, diff, tag, log, fetch, reset, revert, entre otros), así como muchas otras funcionalidades en GitHub.

Git hoy en día es esencial para poder desarrollar proyectos, y son pocos los que realmente dominan muy bien Git…

Continua explorando, probando y aprendiendo día a día… ¡Hasta la próxima!

Leave a Comment