control de versiones con github

Control de versiones con Github

En esta ocasión vamos a revisar el procedimiento para realizar el control de versiones de desarrollo de software con Github, en Linux. Asumo que el lector ya sabe lo que es esta plataforma de código de aplicaciones, y su control de versiones con Git.

Tenemos el siguiente escenario (muy básico, a modo pedagógico)

control de versiones con github

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

control de versiones con github

Antes de comenzar, los que trabajamos con plataformas GNU/Linux debemos preparanos 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 Git para el control de versiones


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).

control de versiones con github

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


Como una rama master es un producto que está en ambiente productivo, no debemos trabajar en cambios, correcciones y mejoras en esa rama. Para eso, debemos crear una rama separada, hacerle los cambios y luego fusionarla nuevamente con la rama master. En la máquina B, yo a mi nueva rama la llamaré ‘mejora_desarrollo‘. Creamos entonces una rama con el comando ‘git branch mejora_desarrollo‘ y la sincronizamos con:

git push --set-upstream origin desarrollo_mejora

Y ahí la tenemos:

control de versiones con github
Si de pronto nos equivocamos nombrando la nueva rama, podemos borrarla con el comando ‘git branch -d la_rama‘.

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‘:

control de versiones con github

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‘.

control de versiones con github
Y ahí lo tenemos:

control de versiones con github

Recordemos sincronizar estos cambios en el repositorio local de la máquina B con el comando ‘git pull‘.


Valora este artículo

Control de versiones con Github
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.
Name
Email
Review Title
Rating
Review Content

Buen artículo

★★★★★
Este si es bueno porque simula un equipo de trabajo pequeño.
- Esteban Urrutia
Comparte esto en
Publicado en Desarrollo Web.