Control de versiones con GitHub en Linux
Para los que estamos comenzado a desarrollar software en plataformas distintas a Windows, también podemos gestionar el control de versiones con GitHub en Linux, como si fuera cualquier otro sistema operativo. Asumo que el lector ya posee conocimientos básicos sobre Git.
Tenemos el siguiente escenario (muy básico, a modo pedagógico)
Y en Github tenemos un repositorio llamado ‘reductor-de-imagenes-sencillo‘. Lo usaremos para hacer este proceso de aprendizaje.
Sí, debemos tener de antemano un repositorio creado para trabajar con Git.
Modelo del flujo de control Git
Antes de comenzar, los que trabajamos con plataformas GNU/Linux debemos prepararnos con un token, que debemos generar en nuestro perfil de Github. Ese token es necesario para sincronizar los repositorios. El procedimiento para generar el token es el siguiente:
Cuenta -> Settings -> Developer settings -> Personal access token -> Generate new token.
Comandos en el control de versiones con GitHub en Linux
1- Definimos nuestra identidad de Github en ambas máquinas, aunque no necesariamente debe ser la misma. Podemos usar una cuenta para la máquina A, y otra para la máquina B.
Sea como sea, definimos nuestra identidad en las máquinas con los siguientes comandos:
git config --global user.name "tú nombre"
git config --global user.mail "tu cuenta de Github"
2- En ambas máquinas creamos un directorio llamado ‘reductor-imagenes‘ (puedes llamarlo como tu quieras) y lo inicializamos con el comando ‘git init‘ (a partir de aquí este directorio será nuestro workspace):
En la máquina A:
En la máquina B:
3- Vinculamos el repositorio remoto al repositorio local en ambas máquinas con ‘git remote add origin‘.
Pero para poder terminar la vinculación, debemos subir algo al repositorio. Creamos entonces en la máquina A un archivo cualquiera (yo voy a subir un main.py), el cual pasamos desde el workspace al staging area con el comando ‘git add‘, luego lo pasamos al repositorio local con el comando ‘git commit‘, y finalmente lo subimos al repositorio con el comando ‘git push‘. Pero como es primera vez que subimos algo, hemos de especificar la rama master como origen con ‘git push -u origin master‘ (donde pide Username es tu usuario de Github y Password va el token que generamos antes de comenzar).
Y ahí tenemos nuestro nuevo archivo en la rama master en el repo:
Ahora, en la máquina B lo que hacemos es sincronizar lo que ya tenemos en el repo con el repositorio local, ejecutando el comando ‘git pull‘.
Y justo ahora ejecutamos el siguiente comando:
git push --set-upstream origin master
Y ya, en esta misma máquina ya podemos crear más archivos y subirlos al repo tal como hicimos en la máquina A:
Podemos verificar en el repositorio la existencia del nuevo archivo ‘_alert.py‘, que subimos desde la máquina B:
Creación de ramas (branch) con Git
En el control de versiones con GitHub en Linux, y en otras plataformas, no debemos trabajar los proyectos directamente en la rama master, porque es el ambiente productivo. Para eso, debemos crear una rama separada en la que podamos trabajar el proyecto, para luego fusionarla nuevamente con la rama master. En la máquina B, yo a mi nueva rama la llamaré ‘mejora_desarrollo‘. Creamos entonces esa rama con el comando ‘git branch mejora_desarrollo‘ y la sincronizamos con:
git push --set-upstream origin desarrollo_mejora
Y ahí la tenemos:
Si de pronto nos equivocamos nombrando la nueva rama, podemos borrarla con el comando ‘git branch -d la_rama‘. Con el comando git switch nos pasamos a la nueva rama:
git switch desarrollo_mejora
Visualización gráfica de ramas
Con la ayuda de la extensión Git Graph de VSC, podemos visualizar la evolución y los movimientos que hacemos entre ramas, optimizando así nuestro control de versiones con GitHub en Linux.
Ahora, nos pasamos a la máquina A y desde ahí ejecutamos el comando ‘git pull‘ para sincronizarle en su repositorio local la nueva rama ‘mejora_desarrollo’, y nos pasamos a esa rama con ‘git checkout mejora_desarrollo‘:
Renombramos a ‘_alert.py‘ por ‘_notificacion.py‘ y lo subimos al repo:
Y ahí lo tenemos:
Excelente! Y para terminar, vamos a fusionar la rama ‘mejora_desarrollo’ con la rama master, para que las mejoras quede en ambiente productivo.
Fusionar ramas (merge) con Git
Para fusionar nuestra rama ‘mejora_desarrollo‘ con la master, debemos asegurarnos de devolvernos primero a la rama master, y ahí sí fusionamos con el comando ‘git merge mejora_desarrollo‘ y ‘git push‘.
Y ahí lo tenemos:
Recordemos sincronizar estos cambios en el repositorio local de la máquina B con el comando ‘git pull‘.
Tips en el control de versiones con GitHub en Linux
Para deshacer esa fusión, y devolvernos al estado anterior a la fusión, podemos acudir al siguiente comando:
git reset --hard HEAD^
Recuperar una versión anterior de un archivo en la rama development. Nos cambiamos a la rama development y ejecutamos:
git checkout id_del_commit -- archivo
Traer un solo archivo desde una rama a master (suponiendo quela otra rama es Development). Nos ubicamos en la rama master y luego ejecutamos:
git checkout Development -- nombre_del_archivo
Valora este artículo
























