Alberto Garcia

Control de versions de codi

Abans de fer la tasca hem fet un curs de formació, amb un certificat del Curs de Git, a la plataforma de openwebinals.

Una vegada el curs fet el que farem serà crear el repositori, per fer-ho vaig escollir GitHub, ja que és una eina que ja havíem utilitzat una mica en un passat i era la més còmoda per nosaltres, per fer-ho anirem a GitHub amb el nostre conta, després seleccionarem el botó verd on posa New, aquí entrarem a la configuració del nostre repositori, on haurem de configurar coses com el nom del repositori, la descripció, la visibilitat és a dir si serà públic o privat, i un parell d’opcions  perquè estiguin predestinats com el README que el seleccionarem, una vegada tot omplert donarem a Create Repositori baix en verd.

Una vegada el repositori creat el que farem serà convidar els altres membres del grup, per fer-ho anirem a dalt a la dreta on posa Settings, aquí entrarem al primer apartat de configuració, que són col·laboradors, una vegada aquí clicarem a add people, i se’ns obrirà un menú on podrem afegir als nostres companys tant pel nom complet que tenen a GitHub o pel seu correu amb el qual inicien sessió.

Ara passarem al nostre Debian, el que farem serà primer còpia al nostre repositori, a local, per fer un parell de modificacions i després tornar a pollar les actualitzacions, però primer el que farem serà compartir les claus SSH amb GitHub per poder anant pujar els arxius sense cap problema d’usuari.
Per instal·lar les nostres claus SSH primer hem de generales que es fan amb la següent comanda, jo poso entre cometes amb el -C per posa un comentari, així sabre quina clau uso.

ssh-keygen -t ed25519 -C "albgarciamarin@gmail.comm"

Amb la clau creada anirem a GITHUB donarem al nostre perfil, i anirem a settings, després a ssh and GPG Keys i clicarem a new SSH key, una vegada dintre d’aquest menú ja veurem per posar-li “nom” aquesta nova clau que estem afegint a GITHUB, al type posarem authentication Key hi ha key la key que prèviament hem generat, donarem a add ssh key.

Ara el que farem serà  copiar el fitxer Vagrantfile dins de l’estructura del nostre repositori Git,

Un cop ja tenim les nostres claus SSH configurades i vinculades correctament amb el nostre compte de GitHub, el següent pas és portar el projecte a la nostra màquina local.

Per fer-ho, utilitzarem la comanda git clone, però en lloc d’usar l’enllaç HTTPS (que ens demanaria usuari i contrasenya cada vegada), farem servir l’enllaç SSH que per això hem fet tot allò d’afegir les claus per comoditat, per agafar l’enllaç de SSH és donant dintre del nostre repositor a code hi ha SSH aquí copiarem la línia.

Git necessita saber qui signa els canvis. Si no ho has fet mai en aquesta màquina, llança aquestes dues comandes.

git config --global user.name "Alberto Garcia"
git config --global user.email "Albgarciamarin@gmail.com"

Ara ja per clonar el repositori es farà el git clone més l’enllaç, en ser la primera vegada que fem SSH ens demanarà si volem connectar la nostra fingerprint posarem Yes i ja instal·larà tot el repositori en local.

vagrant@GitHub:~$ git clone git@github.com:AlbertoDEV0/Reto3-g3.git
Cloning into 'Reto3-g3'...
The authenticity of host 'github.com (140.82.121.4)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (3/3), done.

Finalment, entrem a la carpeta del projecte amb cd i fem un ls -la per verificar que tots els fitxers, inclòs el directori ocult .git, s’han descarregat correctament.

vagrant@GitHub:~$ cd Reto3-g3
ls -la
total 16
drwxr-xr-x 3 vagrant vagrant 4096 Mar 19 11:03 .
drwxr-xr-x 5 vagrant vagrant 4096 Mar 19 11:03 ..
drwxr-xr-x 8 vagrant vagrant 4096 Mar 19 11:03 .git
-rw-r--r-- 1 vagrant vagrant   55 Mar 19 11:03 README.md

Per posar a prova el control de versions, hem realitzat una modificació al fitxer README.md. L’objectiu és verificar que els canvis fets localment a la nostra màquina es reflecteixen correctament al repositori web de GitHub després d’executar un push.

vagrant@GitHub:~$ cd Reto3-g3
ls -la
total 16
drwxr-xr-x 3 vagrant vagrant 4096 Mar 19 11:03 .
drwxr-xr-x 5 vagrant vagrant 4096 Mar 19 11:03 ..
drwxr-xr-x 8 vagrant vagrant 4096 Mar 19 11:03 .git
-rw-r--r-- 1 vagrant vagrant   55 Mar 19 11:03 README.md

El següent pas en la nostra gestió de versions és personalitzar la presentació del projecte. Hem editat el fitxer README.md per incloure la informació del nostre grup, ara veurem l’estat amb la seguent comanda.

vagrant@GitHub:~/Reto3-g3$ sudo vim README.md 
vagrant@GitHub:~/Reto3-g3$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

Això ens indica que la modificació està feta però encara no s’ha afegit a l’índex de Git. Per confirmar el canvi, procedim a fer un git add per preparar el fitxer, un commit per registrar la versió amb un missatge descriptiu, i finalment un push per actualitzar el repositori remot a GitHub.

vagrant@GitHub:~/Reto3-g3$ git add README.md
git commit -m "Actualització del README amb la info del Grup 3"
git push origin main
[main 803de04] Actualització del README amb la info del Grup 3
 1 file changed, 17 insertions(+), 1 deletion(-)
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 618 bytes | 618.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:AlbertoDEV0/Reto3-g3.git
   8fd23d5..803de04  main -> main

Ara anirem a GITHUB per veure si s’han aplicat els canvis al README, ja que abans estava buit 

Ara el que farem serà  copiar el fitxer Vagrantfile dins de l’estructura del nostre repositori Git,

[11:41:40][Reto3-g3][agarcia@agarcia]-$ cp /home/agarcia/Documents/Vagrantfile .
[11:41:55][Reto3-g3][agarcia@agarcia]-$ ls
README.md  Vagrantfile

Finalment, fem servir la comanda git add per indicar a Git que volem fer el seguiment del nou Vagrantfile. Després de realitzar el commit per confirmar el canvi a nivell local, executem el push per pujar-lo definitivament al servidor de GitHub

[11:41:55][Reto3-g3][agarcia@agarcia]-$ git add Vagrantfile
git commit -m "Afegit el Vagrantfile al repositori"
git push origin main
git commit -m "Afegit el Vagrantfile al repositori"
git push origin main
[main e5e9cb7] Afegit el Vagrantfile al repositori
 1 file changed, 292 insertions(+)
 create mode 100644 Vagrantfile
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 20 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 1.36 KiB | 1.36 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:AlbertoDEV0/Reto3-g3.git
   f03079a..e5e9cb7  main -> main

I com ja es pot veure al nostre repositori està tant el nou Readme.md, com el VagrantFile, utilitzat aquest repte.