Salta el contingut

2. Instal·lació, configuració i ús de sistemes de control de versions

Els sistemes de control de versions (VCS) permeten registrar els canvis realitzats als fitxers d’un projecte i coordinar el treball entre diversos desenvolupadors.

Exemples populars: Git (el més utilitzat), Subversion (SVN), Mercurial.

Instal·lació:

  • Instal·lar el programari (git, svn, etc.) al sistema local.
  • Configurar el nom i correu d’usuari.
  • Crear un repositori local i/o clonar un repositori remot.

Ús bàsic:

  • add → afegir canvis a l’índex
  • commit → confirmar canvis al repositori
  • push → enviar canvis al servidor remot
  • pull → descarregar canvis del remot
  • branch → crear o canviar de branca

Integració amb plataformes remotes: GitHub, GitLab, Bitbucket, etc.

2.1 Git

Git és un sistema de control de versions distribuït que guarda un historial complet de canvis en cada còpia del repositori.
És extremadament ràpid, flexible i escalable.

Conceptes clau:

  • Repositori local i remot: cada usuari té una còpia completa de l’historial.
  • Commits: punts de control que registren els canvis realitzats.
  • Branches (branques): línies paral·leles de desenvolupament.
  • Merge i rebase: combinació de canvis entre branques.
  • Staging area (índex): zona intermèdia on es preparen els canvis abans de confirmar-los.

Flux de treball bàsic:

  1. git clone <url> → clona un repositori remot.
  2. git status → comprova l’estat del repositori local.
  3. git add <fitxers> → afegeix canvis a l’índex.
  4. git commit -m "Missatge" → crea un nou commit.
  5. git push → envia els commits al repositori remot.
  6. git pull → baixa els canvis nous del remot i els integra.

Bones pràctiques amb Git: - Fer commits freqüents i amb missatges clars i descriptius. - Treballar en branques de funcionalitat i integrar-les a main o develop amb merge requests. - Resoldre conflictes immediatament i amb cura. - Utilitzar .gitignore per evitar pujar fitxers innecessaris. - Revisar el codi amb pull/merge requests abans d’integrar canvis.

2.2. Operacions avançades

A mesura que el projecte creix, cal dominar operacions més avançades per gestionar el codi de forma eficient:

  • Gestió de branques i estratègies de flux de treball (Git Flow, Trunk Based Development).
  • Merge i rebase per combinar canvis entre branques.
  • Resolució de conflictes en fitxers modificats per diverses persones.
  • Etiquetes (tags) per marcar versions estables.
  • Hooks per automatitzar accions (tests, format, desplegaments).

2.3 Seguretat dels sistemes de control de versions

La seguretat és clau per evitar pèrdua de dades i accessos no autoritzats.

Bones pràctiques:

  • Limitar els permisos d’accés als repositoris (lectura/escriptura).
  • Utilitzar connexions segures (SSH, HTTPS).
  • Fer còpies de seguretat periòdiques dels repositoris.
  • Revisar el codi abans de fer merges a branques principals.
  • Evitar pujar informació sensible (claus API, contrasenyes, certificats…).

Eines útils:

  • .gitignore per evitar pujar fitxers confidencials.
  • Escanejadors de secrets i vulnerabilitats (TruffleHog, GitGuardian…).