Pantalla codigo GIT

Recuperar y restaurar antiguos proyectos.

Tras haber explicado en el primer post, la instalación, en el segundo post, la creación de un repositorio remoto y la exportación de datos. En este post y último vamos a ver como restaurar versiones de proyectos anteriores y compararlos entre si.

Antes de empezar me gustaría aclarar que esto es un control de versiones para el tema software (FBs, FCs, Variables etc). En el tema harware actualmente no se puede hacer un seguimiento.

GIT es un control de versiones muy amplio

.*Voy a explicar los comandos Git mas usados, pero puedes seguir ampliando información, los más básicos los puedes encontrar por ejemplo aquí.

Identificación de versiones anteriores

Esta parte es de las mas comunes en GIT, si hemos ido haciendo commits (a nuestro criterio), tendremos un listado de commits (puntos de restauración).
Con el siguiente comando en consola

git log

O en su defecto en la interfaz grafica (como se puede ver en la siguiente imagen) .


Esto nos mostrara los commits que se hayan hecho para este archivo, tenemos todos los registros con un numero identificativo del commit, su fecha, el autor y nuestra descripcion, esto lo usaremos mas adelante para saber a que punto queremos volver.

Comparacion de commits.

Restauracion de version anterior

Aqui ya nos tenemos que pasar de la interfaz gráfica al terminal de windows (Powershell o Git Bash).
Imaginemos que queremos ver como se encontraba el proyecto hace 4 semanas, antes de hacer unas modificaciones importantes ó queremos ir viendo commit tras commit para saber que se ha ido cambiando entre un commit y otro. Para esto tambien existe otro comando.

git diff

Por esto y por muchas razones, podríamos tener la necesidad de volver a un estado anterior (EL REPOSITORIO) y para esto en nuestro caso utilizaremos el siguiente comando.

git checkout id-del-commit-específico

Este comando nos trasportara nuestra rama principal (HEAD) a una version anterior (es como si hicieramos un viaje en el tiempo y volvieramos a ver el proyecto como estaba el dia del commit).

En la siguiente imagen se puede ver que tras analizar los commits que tenemos, hemos decidido movernos de forma “temporal” al commit 2fb0e1f.
Por lo tanto nuestro lado derecho del WorkStation es ahora una versión anterior del proyecto, sin afectar en nada a nuestro proyecto.
Nos quedara en la parte izquierda nuestro proyecto actual y en la parte derecha nuestra programación del commit al que hayamos vuelto. Esto mas adelante nos ayudara a hacer mejores comparaciones con nuestro proyecto.

Para volver a la rama principal y nuestro estado/imagen actual (ultima version del proyecto) usaremos uno de los siguientes comandos:

git checkout master 
o
git checkout main

Instalacion de Automation Compare Tool.

git checkout commit

Despues de eso, ya tendremos listo para usar en nuestro TIA PORTAL.

Comparacion de versiones con Automation Compare Tool.

Ahora veamos su uso.
Tenemos un programa o bloque de programa gitteado en nuestro Workspace, tras eso hacemos nuestras modificaciones. Si nos vamos a nuestro Workspace veremos que tendremos diferencias, si pinchamos en un bloque con diferencias, nos saldra la opcion de comparar con nuestro workspace.

Si pinchamos en CompareTool veremos una interfaz como la siguiente que nos mostrara los cambios que hemos hecho, en nuestro caso hemos borrado una variable temporal del bloque main y hemos añadido un nuevo objeto (FB) de valvula.

Es muy parecido a la comparacion de objetos online/offline que tiene y se hacen comparaciones de versiones del proyecto muy sencillas e intuitivas.

Tambien nos puede interesar borrar o volver a una version anterior de forma mas permanente, y para ello estan los siguientes comandos.

git reset
o
git revert

Aunque ambos comandos permiten deshacer commits anteriores, la manera en que lo hacen y sus consecuencias difieren significativamente.

Git reset es mas agresivo y se puede utilizar para eliminar commits que ya no vamos a necesitar (para siempre!!)
Git revert (el que recomiendo) en cambio deja los commits intactos y crea un nuevo commit haciendo “referencia” a un antiguo commit.

Conclusiones

Por un lado, está GIT. Aunque en la industria aún no tiene un uso tan extendido, es una herramienta sumamente valiosa. Aprender a usar GIT puede ser muy beneficioso para el futuro. Es una herramienta muy completa que requeriría mucho tiempo y conocimiento para explicar en su totalidad, pero os animo a explorarla y descubrir los beneficios de trabajar con GIT.

Por otro lado, tenemos TIA PORTAL, con sus herramientas oficiales. Creo que representa un gran avance para acercarnos a otro tipo de programación, donde las maneras de trabajar son mucho más sencillas y están más desarrolladas.

Os invito a profundizar en ambas herramientas y a experimentar sus beneficios diariamente.

Muchas gracias y espero que os sea de ayuda :D.