<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Ana Borrego Toledo</provider_name><provider_url>https://aborrego.inscastellbisbal.net/en</provider_url><author_name>aborrego</author_name><author_url>https://aborrego.inscastellbisbal.net/en/author/aborrego/</author_url><title>Control de versions de codi - Ana Borrego Toledo</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="gIUuCbnbXw"&gt;&lt;a href="https://aborrego.inscastellbisbal.net/en/2026/03/16/control-de-versions-de-codi-2/"&gt;Control de versions de codi&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://aborrego.inscastellbisbal.net/en/2026/03/16/control-de-versions-de-codi-2/embed/#?secret=gIUuCbnbXw" width="600" height="338" title="&#x201C;Control de versions de codi&#x201D; &#x2014; Ana Borrego Toledo" data-secret="gIUuCbnbXw" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://aborrego.inscastellbisbal.net/wp-includes/js/wp-embed.min.js
&lt;/script&gt;</html><description>control de versions de codi Tornar al repte 2.3 1. Que es el control de versions i per que l&#x2019;usem? Git es un sistema de control de versions distribu&#xEF;t que permet registrar tots els canvis que es fan al codi alllarg del temps. Cada canvi queda guardat amb un missatge descriptiu, qui l&#x2019;ha fet i quan. 2. Context del projecte El repositori del projecte LadyUp esta allotjat a GitHub amb el compte equip22, creat amb el correucompartit de l&#x2019;equip. Aixo permet que qualsevol company pugui accedir, clonar i contribuir al repositorisense necessitat de crear comptes individuals. 3. Procediment pas a pas Pas 1 &#x2013; Configurar Git Configurem el nom i email que apareixera als commits: git config --global user.name "nom" git config --global user.email "email" Pas 2 &#x2013; Crear el repositori local Creem la carpeta del projecte i inicialitzem el repositori: mkdir projecte-ladyup cd projecte-ladyup git init git branch -m main Pas 3 &#x2013; 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 LadyUp" Pas 5 &#x2013; Branca feature/ldap Creem una branca nova per afegir l&#x2019;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/ldap Pas 6 &#x2013; Branca feature/vagrantfile Creem una branca nova per afegir el Vagrantfile del projecte: git checkout -b feature/vagrantfile cp ~/vagrant23/Vagrantfile ~/projecte-ladyup/Vagrantfile git add Vagrantfile git commit -m "Afegit Vagrantfile amb configuracio de totes les VMs del projecte" git checkout main git merge feature/vagrantfile Pas 7 &#x2013; Historial de commits Verifiquem l&#x2019;historial complet amb branques: git log --oneline --all --graph Pas 8 &#x2013; Pujar a GitHub Connectem el repositori local amb GitHub i pugem el codi. Per autenticar-nos usem un Personal AccessToken generat a https://github.com/settings/tokens: git remote add origin https://github.com/equip22/projecte-ladyup.git git config --global credential.helper store git push -u origin main 4. Acces compartit al repositori El repositori es accessible per tot l&#x2019;equip gracies al compte equip22 creat amb el correu compartit del&#x2019;equip. Aixo permet que qualsevol company pugui clonar el repositori amb: git clone https://github.com/equip22/projecte-ladyup.git Aixo creara una carpeta projecte-ladyup amb tots els fitxers i l&#x2019;historial complet. URL del repositori: https://github.com/equip22/projecte-ladyup &#xA0; Per obtenir els canvis mes recents un cop ja clonat: cd projecte-ladyup git pull origin main 5. Com pujar nous canvis des de la terminal GitHub no permet autenticacio amb usuari i contrasenya des de la terminal. Cal usar un Personal AccessToken (PAT). Com que el compte es compartit (equip22), l&#x2019;equip ha de compartir el mateix token ogenerar-ne un de nou. Pas A &#x2013; Generar el Personal Access Token 1. Iniciar sessio a GitHub amb el compte equip22 2. Anar a:https://github.com/settings/tokens/new 3. Posar un nom descriptiu (ex: token-equip22) 4. Marcar el checkbox &#x2018;repo&#x2019; (dona acces complet als repositoris) 5. Clicar &#x2018;Generate token&#x2019;6. 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 &#x2013; Guardar les credencials permanentment Per no haver de posar el token cada vegada, executar la seg&#xFC;ent comanda un cop. La primera vegada que es faci push demana usuari i token. A partir d&#x2019;aqui les credencials queden guardadesautomaticament. git config --global credential.helper store Pas C &#x2013; Flux de treball per pujar canvis Aquest es el flux que ha de seguir qualsevol company per pujar canvis: # 1. Crear una branca nova per la funcionalitat git checkout -b feature/nom-funcionalitat # 2. Fer els canvis i afegir-los&#xA0; 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 main Username: equip22 Password: (enganxar el Personal Access Token) 6. FORMACI&#xD3; Els conceptes apresos al curs s&#x2019;han aplicat directament a la gestio del repositori del projecte LadyUp: -Inicialitzacio de repositoris amb git init -Gestio de commits amb missatges descriptius -Creacio i gestio debranques (branches) -Fusio de branques amb git merge -Sincronitzacio amb repositori remot a Els conceptes apresos al curs s&#x2019;han aplicat directament a la gestio del repositori del projecte LadyUp: -Inicialitzacio de repositoris amb git init -Gestio de commits amb missatges descriptius &#x2013; Creacio i gestio debranques (branches) -Fusio de branques amb git merge &#x2013; Sincronitzacio amb repositori remot a GitHub(git push / git pull) -Visualitzacio de l&#x2019;historial amb git log GitHub(git push / git pull) -Visualitzacio de l&#x2019;historial amb git log</description><thumbnail_url>https://aborrego.inscastellbisbal.net/wp-content/uploads/2026/03/Selection_070.png</thumbnail_url><thumbnail_width>663</thumbnail_width><thumbnail_height>236</thumbnail_height></oembed>
