Comprendiendo y utilizando Git para el desarrollo de software

Git es un sistema que permite llevar un registro de cambios producidos a un conjunto de archivos.

Inicializando un repositorio Git

Por ejemplo, abre un directorio en tu sistema local con un editor de texto como VS Code.

A continuación, ejecuta init desde la línea de comandos.

git init

Acabas de crear un repositorio Git o un repo. Vive en el directorio oculto git y se encarga de dar seguimiento a todos los cambios que se produzcan en los archivos.

Creando instantáneas

A medida que trabajes en un código base, generarás instantáneas o commits del estado actual de los archivos. Cada commit tiene un ID único y está vinculado a un commit padre. Esto hace que podamos viajar en el tiempo a una versión anterior de nuestros archivos.

Puedes observar cómo se ilumina nuestro icono del control de versión.

CleanShot 2023-03-13 at 13.15.44@2x.png

Por ahora, todos nuestros archivos están sin seguimiento porque primero tenemos que añadirlos al repositorio.

Ejecuta add para hacer que se incluyan estos archivos al repositorio.

git add .

Ahora, genera una instantánea del estado actual de los archivos, ejecutando git commit junto con un mensaje sobre los cambios que se hicieron a los archivos.

git commit -m "init"

Bravo, acabas de crear tu primer commit en la cabecera de la rama o branch main del repositorio. Los archivos modificados han desaparecido y ahora estás en un directorio de trabajo limpio, sin modificaciones.

La cabecera o head representa el commit más reciente realizado. Si hacemos algunos cambios y hacemos un commit al repositorio, la cabecera avanzará, pero seguimos teniendo como referencia a nuestro commit anterior para que siempre podamos volver a él.

Pero algo que ocurre con el software, es que se desarrolla de forma no lineal. Es posible que varios equipos de trabajo colaboren simultáneamente en distintas funcionalidades dentro de un mismo código base. Git hace que esto sea posible mediante ramificaciones.

Ramificaciones o branches

Al ejecutar el comando branch puedes generar una rama.

git branch alternate-universe

Y para moverte a esta rama o branch ejecuta checkout.

git checkout alternate-universe

Ahora puedes trabajar con seguridad en alguna funcionalidad dentro de esta branch, sabiendo que no afectará el código o los archivos de la branch principal.

Los commits que hagas en esta branch vivirán en un universo paralelo con un historial propio.

Sin embargo, probablemente en algún momento quieras combinar este historial con el historial de la branch principal. Cuando esto suceda, puedes volver a la branch principal ejecutando checkout.

git checkout main

A continuación, ejecuta merge en tu universo paralelo.

git merge alternate-universe

La punta de tu branch de funcionalidad se convierte ahora en la cabecera de la branch principal.

En otras palabras, nuestro universo que antes teníamos fragmentado se ha convertido en uno solo. A menos que te hayas encontrado con un conflicto de incorporación o merge conflict. En este caso, tendrás que esperar al siguiente artículo.