cristian Lozano

Control de versions de codi

Que es el control de versions i per que l’utilitzem?

Git es un sistema de control de versions distribuït que permet registrar tots els canvis que es fan al codi al
llarg del temps. Cada canvi queda guardat amb un missatge descriptiu, qui l’ha fet i quan.

Projecte:

El repositori del projecte Makrosoft esta allotjat a GitHub amb el compte equip22, creat amb el correu compartit de l’equip. Aixo permet que qualsevol company pugui accedir, clonar i contribuir al repositori sense necessitat de crear comptes individuals

Procediment pas a pas

Configurem el nom i email que apareixera als commits:

git config --global user.name "nom"
git config --global user.email "email"

Creem la carpeta del projecte i inicialitzem el repositori:o.

mkdir projecte-makrosoft
cd projecte-makrosoft
git init
git branch -m main

Primer commit (README

Creem el fitxer README.md i fem el primer commit:

vim README.md
git add README.md
git commit -m "Afegit README amb descripcio del projecte Makrosoft"

Branca feature/ldap

Creem una branca nova per afegir l’estructura base LDAP:

git checkout -b feature/ldap
nano base.ldif
git add base.ldif
git commit -m "Afegida estructura base LDAP (ou=usuaris, ou=grups)"
git checkout main
git merge feature/ldapt"

Branca feature/vagrantfile

Creem una branca nova per afegir el Vagrantfile del projecte:

git checkout -b feature/vagrantfile
cp ~/vagrant23/Vagrantfile ~/projecte-makrosoft/Vagrantfile
git add Vagrantfile
git commit -m "Afegit Vagrantfile amb configuracio de totes les VMs del projecte"
git checkout main
git merge feature/vagrantfile

Historial de commits

Verifiquem l’historial complet amb branques:

git log --oneline --all --graph

Pujar a GitHub

Connectem el repositori local amb GitHub i pugem el codi. Per autenticar-nos usem un Personal Access Token generat a GitHub:

git remote add origin https://github.com/equip22/projecte-makrosoft.git
git config --global credential.helper store
git push -u origin main

Acces compartit al repositori

El repositori es accessible per tot l’equip gracies al compte equip22 creat amb el correu compartit de l’equip. Aixo permet que qualsevol company pugui clonar el repositori amb::

git clone https://github.com/equip22/projecte-makrosoft.git

Aixo creara una carpeta projecte-makrosoft amb tots els fitxers i l’historial complet.

URL del repositori

https://github.com/equip22/projecte-makrosoft.git

Per obtenir els canvis mes recents un cop ja clonat:

cd projecte-makrosoft
git pull origin main

Com pujar nous canvis des de la terminal

GitHub no permet autenticacio amb usuari i contrasenya des de la terminal. Cal usar un Personal Access Token (PAT). Com que el compte es compartit (equip22), l’equip ha de compartir el mateix token o generar-ne un de nou.

Pas A – Generar el Personal Access Token

  1. Iniciar sessio a GitHub amb el compte equip22
  2. Anar a:
https://github.com/settings/tokens/new
  1. Posar un nom descriptiu (ex: token-equip22)
  2. Marcar el checkbox repo (dona acces complet als repositoris)
  3. Clicar Generate token
  4. IMPORTANT: Copiar i guardar el token, nomes es veu una vegada!

ATENCIO: Si es perd el token cal generar-ne un de nou a la mateixa URL.

Pas B – Guardar les credencials permanentment

Per no haver de posar el token cada vegada, executar la següent comanda un cop. La primera vegada que es faci push demana usuari i token. A partir d’aqui les credencials queden guardades automaticament.

git config --global credential.helper store

Pas C – Flux de treball per pujar canvis

Aquest es el flux que ha de seguir qualsevol company per pujar canv

# 1. Crear una branca nova per la funcionalitat
git checkout -b feature/nom-funcionalitat

# 2. Fer els canvis i afegir-los
git add nom-fitxer

# 3. Fer el commit amb missatge descriptiu
git commit -m "Descripcio clara del que s'ha fet"

# 4. Tornar a main i fusionar
git checkout main
git merge feature/nom-funcionalitat

# 5. Pujar a GitHub
git push origin mainore
Username: equip22
Password: (enganxar el Personal Access Token)

FORMACIÓ

Els conceptes apresos al curs s’han aplicat directament a la gestio del repositori del projecte Makrosoft:

Inicialitzacio de repositoris amb git init
Gestio de commits amb missatges descriptius
Creacio i gestio de branques (branches)
Fusio de branques amb git merge
Sincronitzacio amb repositori remot a GitHub (git push / git pull)
Visualitzacio de l’historial amb git log