¿Qué es Git? #

Git

Documentación oficial #

¿Qué es Git? #

Git es un sistema de control de versiones distribuido de código abierto utilizado por los desarrolladores para emplearlo en proyectos de pequeña escala y también para proyectos más complejos.

Ayuda a darle un seguimiento a las diferentes versiones del código y a poder colaborar con otros desarrolladores.

¿Qué es un sistema de control de versiones distribuido? #

Un sistema de control de versiones distribuido es un sistema que permite almacenar y gestionar las versiones de un proyecto por medio de repositorios remotos y locales.

Por ejemplo un repositorio remoto puede ser guardado en un servidor como GitHub, GitLab, BitBucket o incluso uno mismo puede tener su propio servidor de Git.

Por otro lado los repositorios locales pueden estar distribuidos en las computadoras de los desarrolladores.

¿Cómo instalar Git? #

Dependiendo del sistema operativo en el que se encuentre se puede instalar de diferentes maneras. Para ello se puede seguir la documentación oficial de Git.

Comandos Principales #

Inicializar un repositorio - git init #

Primeramente se debería crear un directorio para el proyecto, en este caso será git-demo.

El comando git init se utiliza para inicializar un repositorio local. Esto crea un directorio oculto llamado .git en el directorio actual. Este directorio contiene todos los archivos necesarios para el repositorio.

Agregar un archivo al repositorio - git add #

Para agregar un archivo al repositorio se utiliza el comando git add. Por ejemplo si se quiere agregar el archivo README.md, primero se crea el archivo y luego se agrega al repositorio.

git-init

Normalmente se considera buena práctica que el repositorio tenga un archivo README.md que contenga información importante y necesaria sobre el proyecto.

¿Cómo verificar el estado? - git status #

Para verificar el estado del repositorio se utiliza el comando git status. Este comando muestra los archivos que han sido modificados y los archivos que han sido agregados al repositorio. Por ejemplo:

git-status

Indica que se ha agregado un nuevo archivo y está listo para ser confirmado.

Configurar usuario - git config #

Si se ejecuta el comando git commit -m '<mensaje>' se obtendrá un error indicando que no se ha configurado el usuario. Por lo tanto es necesario confirmar la identidad del usuario que está realizando los cambios.

git-auth

Ahora con el usuario configurado se puede confirmar los cambios.

Confirmar cambios - git commit #

Para confirmar los cambios se utiliza el comando git commit. Este comando toma los archivos que han sido agregados al repositorio y los guarda en el historial del repositorio.

git-commit

¿Qué es un commit? #

Un commit es un punto en el tiempo que representa la diferencia de los cambios realizados a partir del commit anterior. En otras palabras, un commit es una versión del código.

Ver historial - git log #

Para ver el historial de los cambios realizados se utiliza el comando git log. Este comando muestra los commits que se han realizado en el repositorio.

git-log

Se puede confirmar la identidad del usuario que realizó los cambios y también el mensaje que se agregó al commit.

Ramas #

Por defecto se crea una rama llamada master/main. Por lo tanto todos los commits se realizan en esta rama.

¿Qué es una rama? #

Una rama es una línea temporal que apunta al último commit que se ha realizado o en otras palabras la cabeza.

¿Por qué se utilizan ramas? #

Las ramas ayuda a los desarrolladores a trabajar en diferentes partes del proyecto en paralelo y sin afectar la rama principal.

git-branch

En esta imagen se muestra como existe la rama llamada Master como una rama principal, donde el código es estable y se puede desplegar a producción.

Por otra parte hay una rama llamada Release que se utiliza para agregar a Master una nueva versión del código.

Luego hay una rama llamada Develop la cual se utiliza para integrar las diferentes ramas de los desarrolladores.

Finalmente están las ramas Feature que se utilizan para desarrollar nuevas funcionalidades.

Crear una rama en local - git branch #

Para crear una rama en local se utiliza el comando git branch. Por ejemplo si se quiere crear una rama llamada develop se ejecuta el comando git branch develop.

git-branch-create

Mostrar ramas - git branch #

Como se puede ver en la imagen anterior, se utiliza el comando git branch para mostrar las ramas que existen en el repositorio. La que está marcada con un asterisco es la rama en la que se encuentra actualmente.

Cambiar de rama - git checkout #

Para cambiar de rama se utiliza el comando git checkout.

git-checkout

Por ejemplo si se quiere cambiar a la rama develop se ejecuta el comando git checkout develop.

Agregando archivos a la rama develop #

git-add

En la imagen anterior se observa como se crea un archivo llamado demo.txt que contiene el mensaje Ramas - Git. Luego se agrega al repositorio y se confirma.

Fusionar ramas - git merge #

Fusionar ramas es un proceso que se realiza para integrar los cambios de una rama con otra.

Para fusionar una rama con otra se utiliza el comando git merge. Por ejemplo si se quiere fusionar la rama develop con la rama master se ejecuta el comando git merge develop.

git-merge

Como se encontraba en la rama develop se cambia a la rama master con git checkout y se fusiona con la rama develop.

Repositorio Remoto #

Hasta ahora, solamente se ha trabajado con un repositorio local. Normalmente cada desarrollador trabaja en su propio repositorio local.

Cuando se encuentran listos los cambios se suben al repositorio remoto. Una vez el código se encuentra en el repositorio remoto, los demás desarrolladores pueden descargar los cambios y continuar trabajando.

Utilizando GitHub #

git-github

GitHub es un servicio de alojamiento de repositorios remotos. Es uno de los servicios más populares para alojar repositorios de Git.

Se debe de crear una cuenta en GitHub para poder crear un repositorio remoto. Una vez creado el repositorio remoto se puede agregar al repositorio local.

Agregar repositorio remoto - git remote #

git-remote

Como se puede ver en la imagen anterior, se utiliza el comando para agregar un repositorio remoto.

git remote add origin git@github.com:<username>/<repository>.git

En este caso, se realiza por medio de SSH.

Vincular repositorio local con el remoto #

Además de agregar el repositorio remoto, también se víncula el repositorio local con el remoto. Para ello se utiliza el comando

git push -u origin master

Traer cambios del repositorio remoto - git pull #

Para traer los cambios del repositorio remoto se utiliza el comando git pull. Por ejemplo si se quiere traer los cambios de la rama master se ejecuta el comando git pull origin master.

git-pull

En este caso, hace pull pero como no hay cambios, no se trae nada del repositorio remoto. E indica que el repositorio está actualizado.

Clonar repositorio remoto - git clone #

Para clonar un repositorio remoto se utiliza el comando git clone. Por ejemplo si se quiere clonar el repositorio git-demo se ejecuta el comando git clone <url-repositorio>

git-clone

En este caso se clona el repositorio remoto git-demo por medio de SSH.

Conclusiones #

Git es una herramienta muy poderosa que ayuda a los desarrolladores a colaborar en proyectos de software y facilitarle la vida a los mismos.

En este artículo se ha visto los comandos principales de Git y también se ha visto como se puede trabajar con repositorios remotos.

Próximamente se estará publicando un artículo sobre como configurar Git con llaves SSH.