El control de versions és una pràctica essencial en el desenvolupament de programari que permet gestionar els canvis en el codi font al llarg del temps. Aquesta pràctica és fonamental per a treballar en equips, mantenir l'historial de canvis i revertir errors de manera eficient.
Què és el Control de Versions?
El control de versions és un sistema que registra els canvis realitzats en un fitxer o conjunt de fitxers al llarg del temps, de manera que puguis recuperar versions específiques més tard. Els sistemes de control de versions (VCS) són eines que ajuden a gestionar aquests canvis.
Tipus de Sistemes de Control de Versions
-
Sistemes de Control de Versions Locals (LVCS):
- Emmagatzemen les versions de fitxers en el mateix ordinador on es treballa.
- Exemple: RCS (Revision Control System).
-
Sistemes de Control de Versions Centralitzats (CVCS):
- Emmagatzemen totes les versions de fitxers en un servidor central.
- Exemple: Subversion (SVN).
-
Sistemes de Control de Versions Distribuïts (DVCS):
- Cada desenvolupador té una còpia completa de l'historial del projecte.
- Exemple: Git, Mercurial.
Git: Un Sistema de Control de Versions Distribuït
Git és un dels sistemes de control de versions més populars i utilitzats en el desenvolupament de programari. A continuació, es presenten alguns conceptes i comandes bàsiques de Git.
Conceptes Clau de Git
- Repositori (Repository): Un repositori és una col·lecció de fitxers i l'historial de canvis d'aquests fitxers.
- Commit: Un commit és un registre de canvis realitzats en el repositori.
- Branch: Una branch és una línia de desenvolupament independent dins del repositori.
- Merge: Un merge combina canvis de diferents branches en una sola branch.
- Clone: Clonar un repositori és crear una còpia del repositori en el teu ordinador local.
Comandes Bàsiques de Git
Inicialitzar un Repositori
Aquesta comanda crea un nou repositori Git en el directori actual.
Clonar un Repositori
Aquesta comanda clona un repositori remot en el teu ordinador local.
Afegir Fitxers al Repositori
Aquesta comanda afegeix un fitxer específic a l'àrea d'staging.
Aquesta comanda afegeix tots els fitxers modificats a l'àrea d'staging.
Realitzar un Commit
Aquesta comanda crea un nou commit amb els canvis de l'àrea d'staging.
Veure l'Historial de Commits
Aquesta comanda mostra l'historial de commits del repositori.
Crear una Nova Branch
Aquesta comanda crea una nova branch.
Canviar de Branch
Aquesta comanda canvia a la branch especificada.
Fusionar Branches
Aquesta comanda fusiona la branch especificada amb la branch actual.
Pujar Canvis a un Repositori Remot
Aquesta comanda puja els commits de la branch especificada al repositori remot.
Baixar Canvis d'un Repositori Remot
Aquesta comanda baixa els canvis del repositori remot i els fusiona amb la branch actual.
Exercicis Pràctics
Exercici 1: Inicialitzar un Repositori i Realitzar un Commit
- Inicialitza un nou repositori Git en un directori buit.
- Crea un fitxer anomenat
hola.txt
i afegeix-hi el text "Hola, món!". - Afegeix el fitxer a l'àrea d'staging.
- Realitza un commit amb el missatge "Primer commit".
Solució
mkdir nou-repo cd nou-repo git init echo "Hola, món!" > hola.txt git add hola.txt git commit -m "Primer commit"
Exercici 2: Crear i Fusionar Branches
- Crea una nova branch anomenada
nova-funcio
. - Canvia a la branch
nova-funcio
. - Modifica el fitxer
hola.txt
per afegir-hi el text "Nova funció". - Realitza un commit amb el missatge "Afegida nova funció".
- Torna a la branch
main
. - Fusiona la branch
nova-funcio
amb la branchmain
.
Solució
git branch nova-funcio git checkout nova-funcio echo "Nova funció" >> hola.txt git add hola.txt git commit -m "Afegida nova funció" git checkout main git merge nova-funcio
Errors Comuns i Consells
- Oblidar-se de fer
git add
: Si no afegeixes els fitxers a l'àrea d'staging, els canvis no es commitejaran. - Conflictes de fusió: Quan dos desenvolupadors modifiquen la mateixa part d'un fitxer, pot haver-hi conflictes de fusió. Revisa i resol els conflictes manualment.
- No fer commits freqüents: Fer commits freqüents amb missatges descriptius ajuda a mantenir un historial clar i facilita la depuració.
Resum
El control de versions és una eina poderosa per gestionar els canvis en el codi font i col·laborar amb altres desenvolupadors. Git és un dels sistemes de control de versions més populars, i conèixer les seves comandes bàsiques és essencial per a qualsevol desenvolupador. Practicar amb Git t'ajudarà a comprendre millor com gestionar els teus projectes de programari de manera eficient i col·laborativa.
Fonaments de la Programació
Mòdul 1: Introducció a la Programació
- Què és la programació?
- Història de la programació
- Llenguatges de programació
- Entorns de desenvolupament