GIT. Control de versions

Introducció

Què fa?

Ens permet mantenir un registre dels canvis de documents al llarg del temps. En el cas de l'enginyeria del software s'encarrega de proporcionar un control sobre els canvis del codi.
D'aquesta manera, podem mantenir un control total sobre les modificacions i l'evolució del codi, fet que ens permet desfer errors, treballar sobre una versió antiga, saber qui ha fet els canvis, entre altres.

Parts del control de versions

Repositori

És l'espai on es desen els conjunts de canvis. Generalment es tracta d'una carpeta amb informació dels fitxers i dels canvis.
Cada cop que s'afegeixen canvis al codi es guarden dins el repositori i s'identifiquen amb un codi de versió. Hi ha tres tipus: repositori local, remot i distribuït

Tronc i branques

El tronc és allà on es pugen les revisions. Les branques representen canvis que es desen a part del tronc. Així mantenim diferents fils de programació.

Terminologia

Repositori (repository) fa referència al lloc on es guarden els fitxers actuals i l'històric de canvis.

Branca (branch) bifurcació del tronc o branca mestra de l'aplicació que conté una versió independent de l'aplicació a la qual poden aplicar-se canvis sense que afectin ni el tronc ni altres branques.

Còpia de treball (working copy) còpia local dels fitxers que s’han copiat del repositori, que és sobre la qual es fan els canvis (és a dir, sobre la que es treballa) abans d’afegir aquests canvis al repositori.

Bifurcació (fork) crear un nou repositori a partir d’un altre. Aquest nou repositori, al contrari que en el cas de la clonació, no està lligat al repositori original i es tracta com un repositori diferent.

Veure més...

Instal·lació

Per instal·lar el git a l'equip pots fer-ho mitjançant el següent enllaç: software GIT

Comandes bàsiques

Per comprovar que la instal·lació s'ha dut a terme correctament, escriu en un cmd la següent comanda: git --version. Si el cmd et retorna la versió git instal·lada, vol dir que ha estat correctament instal·lat.

Primers passos

Primer de tot, mitjançant l'ús de comandes (cd), accedim al directori al qual volem configurar un control de versions. Un cop comprovem que estem a dins el directori desitjat (pwd), inicialitzarem el git amb la comanda git init

Un cop inicialitzat el git en el nostre directori, modificarem les credencials personals del git, canviant el correu i l'usuari. Per canviar el nom utilitzarem la comanda git config --global user.name 'nom exemple', substituint el que hi ha entre '', pel nostre nom i per canviar el correu assignat al compte git config --global user.email 'correu@exemple.com', canviant el que hi ha entre '' pel nostre correu.

Amb la comanda git add nomArxiu.extensio, preparem l'arxiu indicat per ser pujat al repositori quan es dugui a terme el següent commit

Amb la comanda git status, comprovem l'estat en què es troba el git, en aquest cas es mostra l'arxiu que hem afegit anteriorment (index.html), preparat per pujar-se en el següent commit, mentre que l'altre arxiu que hi ha dins el nostre directori, no ho està.

En el cas de voler retirar algun document dels arxius preparats per ser pujats en el pròxim commit, hem de fer ús de la comanda git rm --cached nomArxiu.extensio i si tot seguit fem un git status, veurem que ja no es troba llest per ser pujat.

També tenim l'opció d'afegir arxius segons la seva extensió. Per exemple, per afegir únicament tots els arxius amb extensió .html, farem ús de la comanda git add *.html

Finalment, en el cas de voler afegir tots els arxius del directori per ser pujats al repositori, utilitzarem la comanda git add .

Per tal de confirmar tots aquests canvis (fer un commit), emprem la comanda git commit -m 'Comentari'. És imprescindible afegir un comentari a cada commit que fem, per així també mantenir una mica d'ordre i poder identificar-los ràpidament.

En el cas que hi hagi un document que no volem que de forma automàtica no s'afegeixi als commit, haurem de crear un document anomenat .gitignore. Dins aquest arxiu, afegirem els noms dels elements que no volem afegir. Per exemple, en la imatge que es mostra a continuació, hem afegit un arxiu i un directori a .gitignore, per fer-ho només hem hagut d'escriure el nom del fitxer amb la seva extensió i el nom del directori precedit del símbol /.

Per poder treballar amb una branca, primer l'hem de crear amb la comanda git checkout nomBranca i automàticament, el git començarà a treballar sobre la nova branca.

En aquest cas, per fer un commit des d'una branca hem de seguir els mateixos passos que abans, primer afegir tots els canvis que volem mantenir (Per exemple, git add .) i després fer un commit amb el seu comentari pertinent (git commit -m 'comentari').

IMPORTANT: el commit es guardarà dins la branca on estàs treballant, no s'unirà a cap altre branca ni al tronc (normalment master o main).

Per tal d'afegir tots els canvis fets en una branca al tronc (o branca principal), hem de fer un merge nomBranca, estant dins la branca que volem fusionar.

Connectar GIT amb GitHub

GitHub és un software per allotjar i gestionar projectes fent ús del sistema de control de versions. Web de GitHub

Primer de tot, hem de crear un compte personal a la web amb el qual gestionarem els nostres projectes

Un cop a dins, crearem el nostre primer repositori al qual obligatòriament li hem de posar un nom

Per tal d'associar un projecte ja creat del nostre equip al nou repositori del gitHub, hem de fer servir les comandes que el propi gitHub ens proporciona. Primer fem servir la comanda git remote add origin https://github.com/NomUsuari/NomRepositori.git i després git push -u origin nomBrancaPrincipal

És important recordar canviar el nom de la branca principal sobre la qual treballem, fet que el gitHub, de forma predeterminada et dona el codi suposant que es diu main

Llavors, si es tracta del primer cop, et demanarà que iniciïs sessió en el teu compte de gitHub, amb les teves credencials i, un cop validades aquestes credencials i havent iniciat correctament la sessió, acabarà de fer el push del projecte en local al repositori

Un cop finalitzat aquest procés, si entres al repositori del gitHub en el qual has penjat el projecte, t'haurien de sortir tots els elements.

A partir d'aquest moment, sempre que fem canvis en el nostre projecte, perquè es vegin reflectits en el gitHub, haurem de seguir el mateix procés: git add, git commit -m 'Comentari', git push.

En cas que volguéssim descarregar el projecte des del gitHub, accedint al mateix repositori i seleccionant el botó Code, podrem triar si obrir-lo amb gitHub Desktop o si preferim descarregar-lo en format ZIP.

Finalment, és important saber que en cas que pugui haver-hi canvis penjats en el gitHub que no tens en el teu projecte local, s'ha d'utilitzar la comanda git pull i si és el cas de què sí hi ha canvis, s'aplicaran directament al teu projecte en local.

Documentació i enllaços d'interès

Workflow Manual d'usuari Visual Studio