L'Ana ja té Git instal·lat al portàtil, però abans d'escriure la seva primera ordre necessita entendre el vocabulari. Git té un lèxic propi, dens i molt precís: cada paraula —repositori, índex, HEAD, branca, remot— designa una cosa concreta, i fer servir malament un terme és la porta d'entrada a la confusió. A més, totes les ordres són en anglès mentre que la documentació en català tradueix els conceptes, així que convé manejar les dues etiquetes de cada idea des del principi.
Aquesta lliçó és un glossari raonat. No executarem operacions —això arriba al mòdul 2—, sinó que definirem què significa cada terme i com es relaciona amb els altres. L'objectiu és que quan al mòdul 3 llegeixis "fusionar la branca d'en Bruno a main", cada paraula d'aquesta frase tingui un significat nítid al teu cap.
Contingut
- Les tres zones de Git
- Els tres estats d'un fitxer
- Glossari essencial
- Referències: HEAD, branques i etiquetes
- Col·laboració: remots, clons i forks
- Integració: fusió i rebase
- Vocabulari català ↔ anglès
- Com encaixen tots els termes
- Les tres zones de Git
Tota la feina amb Git passa en tres llocs diferents. Entendre aquesta separació és el 50 % d'entendre Git.
graph LR
WD["Directori de treball<br/>(working tree)<br/>els teus fitxers reals"]
IDX["Àrea de preparació<br/>(staging area / index)<br/>el que entrarà al pròxim commit"]
REPO["Repositori<br/>(.git)<br/>historial confirmat"]
WD -->|git add| IDX
IDX -->|git commit| REPO
REPO -->|git checkout / switch| WD
El directori de treball (working tree)
És la carpeta que veus a l'explorador de fitxers: per a l'Ana, la carpeta gestor-tasques amb index.html, estils.css, app.js i README.md. Són fitxers normals, que pots obrir i editar amb qualsevol programa. Git no hi interfereix.
Conté una sola versió del projecte: la que estàs editant ara mateix.
L'àrea de preparació (staging area, index)
És una zona intermèdia on s'acumula el que formarà la pròxima confirmació. Físicament és un fitxer binari dins de .git, anomenat index —d'aquí que aquesta zona s'anomeni indistintament staging area, index o cache, tres noms per a la mateixa cosa.
La seva raó de ser és el control. Sense ella, confirmar significaria "desa tot el que he tocat". Amb ella, l'Ana pot haver modificat cinc fitxers i decidir que només tres, o fins i tot només certes línies d'un fitxer, formen un canvi amb sentit propi. El resultat són confirmacions netes, cadascuna amb una única intenció.
El repositori (.git)
És la carpeta oculta .git que hi ha dins del projecte. Conté tot l'historial: cada confirmació, cada versió de cada fitxer, totes les branques i etiquetes, la configuració local i les referències als remots.
Dues conseqüències pràctiques:
- Si copies la carpeta del projecte amb el seu
.git, t'endús el projecte sencer amb el seu historial. - Si esborres
.git, l'historial desapareix i queda una carpeta corrent de fitxers. Els fitxers actuals sobreviuen; tota la resta, no.
| Zona | Nom en anglès | Ubicació | Què conté |
|---|---|---|---|
| Directori de treball | working tree / working directory | La carpeta del projecte | Una versió dels fitxers, editable |
| Àrea de preparació | staging area / index | .git/index |
L'esborrany de la pròxima confirmació |
| Repositori | repository / object database | .git/objects |
Tot l'historial, immutable |
- Els tres estats d'un fitxer
Com a corol·lari de les tres zones, qualsevol fitxer d'un projecte Git es troba en un d'aquests estats.
stateDiagram-v2
[*] --> SenseSeguiment: fitxer nou
SenseSeguiment --> Preparat: git add
Preparat --> Confirmat: git commit
Confirmat --> Modificat: edites el fitxer
Modificat --> Preparat: git add
Preparat --> Modificat: el tornes a editar
| Estat | En anglès | Significat |
|---|---|---|
| Sense seguiment | untracked | Git veu el fitxer però mai no l'ha registrat; encara no forma part del projecte |
| Modificat | modified | El fitxer ja és a l'historial i l'has canviat, però el canvi no està marcat per confirmar |
| Preparat | staged | El canvi està marcat per entrar a la pròxima confirmació |
| Confirmat | committed | El canvi està desat de manera permanent al repositori |
Un exemple amb la carpeta de l'Ana, encara sense executar ordres:
- L'Ana crea
README.mden un projecte Git acabat de crear → el fitxer està sense seguiment. - L'Ana el prepara → passa a preparat.
- L'Ana confirma → passa a confirmat. Ara té seguiment i està net.
- L'Ana afegeix una línia al
README.md→ torna a estar modificat.
Un mateix fitxer pot estar en dos estats alhora: si l'Ana prepara un canvi i després torna a editar el fitxer, tindrà una part preparada i una altra modificada sense preparar. Això desconcerta al principi i té tot el sentit quan s'entén que les tres zones contenen versions independents.
- Glossari essencial
Aquesta és la taula de referència de la lliçó. Consulta-la quan un terme no et soni en lliçons posteriors.
| Terme (ca) | Terme (en) | Definició |
|---|---|---|
| Repositori | repository, repo | Un projecte sota control de Git: els seus fitxers més la carpeta .git amb tot el seu historial |
| Directori de treball | working tree | Els fitxers del projecte tal com són ara al disc, editables |
| Àrea de preparació | staging area, index | Zona intermèdia on es construeix la pròxima confirmació |
| Confirmació | commit | Instantània permanent del projecte, amb autor, data, missatge i referència al seu pare |
| Hash / SHA | hash, SHA-1, object ID | Identificador únic de 40 caràcters hexadecimals que Git calcula del contingut |
| HEAD | HEAD | Punter a "on ets ara": normalment, la branca en què treballes |
| Branca | branch | Línia de desenvolupament independent; tècnicament, un punter mòbil a una confirmació |
| Etiqueta | tag | Nom fix donat a una confirmació concreta, típicament una versió publicada |
| Remot | remote | Un altre repositori, normalment en un servidor, amb el qual sincronitzes |
| Clon | clone | Còpia completa d'un repositori, amb tot el seu historial |
| Fork | fork | Còpia d'un repositori aliè sota el teu propi compte, en una plataforma d'allotjament |
| Fusió | merge | Operació que integra la feina d'una branca en una altra creant una confirmació d'unió |
| Rebase | rebase | Operació que reaplica confirmacions sobre una altra base, reescrivint l'historial |
| Conflicte | conflict | Situació en què Git no pot combinar dos canvis automàticament |
| Amb seguiment / sense seguiment | tracked / untracked | Si Git coneix o no aquest fitxer |
| Ignorat | ignored | Fitxer que Git omet deliberadament, llistat a .gitignore |
| Instantània | snapshot | Estat complet del projecte en un moment donat |
| Origen | origin | Nom convencional del remot principal |
| Branca principal | main / master | Branca que conté la versió oficial del projecte |
| Referència | ref | Nom llegible que apunta a una confirmació (branques, etiquetes i HEAD són refs) |
Els termes que més costa assimilar
Tres mereixen un paràgraf propi, perquè són els que generen més confusió.
Confirmació (commit). No és "desar el fitxer". És registrar una instantània del projecte sencer en un moment concret, acompanyada de metadades: qui la va fer, quan, amb quin missatge i de quina confirmació anterior parteix. S'identifica per un hash com a3f5c9e2b1d4..., que a la pràctica s'abreuja als set primers caràcters (a3f5c9e). Un cop creada, és immutable.
A més, "commit" funciona com a substantiu i com a verb: fer un commit (crear una confirmació) i commitejar un canvi (registrar-lo). En català farem servir "confirmació" i "confirmar", encara que en la parla professional catalana se senti constantment l'anglicisme.
Branca (branch). Intuïtivament és "una línia de desenvolupament paral·lela". Tècnicament és molt més simple: un fitxer de text amb el hash d'una confirmació. Quan l'Ana confirma un canvi estant a la branca main, Git actualitza aquest fitxer perquè apunti a la nova confirmació. Per això crear una branca a Git és instantani: només escriu quaranta-un bytes al disc. El mòdul 3 desenvolupa això a fons.
HEAD. És la resposta a la pregunta "on soc?". Normalment HEAD apunta a una branca, i aquesta branca apunta a una confirmació. Quan canvies de branca, el que canvia és HEAD.
graph LR
HEAD["HEAD"] --> MAIN["branca main"]
MAIN --> C3["commit c3f8a21"]
C3 --> C2["commit 9d4e7b0"]
C2 --> C1["commit 1a2b3c4"]
Existeix un cas especial anomenat HEAD desacoblat (detached HEAD): quan HEAD apunta directament a una confirmació en lloc de a una branca. Passa en posicionar-se en un punt concret de l'historial per inspeccionar-lo. No és un error, encara que el missatge que Git mostra espanti el primer cop. El tractarem al mòdul 3.
- Referències: HEAD, branques i etiquetes
Tots tres són referències (refs): noms llegibles que apunten a confirmacions. Es diferencien pel seu comportament.
| Referència | Es mou? | Per a què serveix |
|---|---|---|
| Branca | Sí, avança automàticament amb cada confirmació | Marcar una línia de desenvolupament en curs |
| Etiqueta | No, és fixa | Marcar un punt històric: la versió 1.0, un lliurament |
| HEAD | Sí, en canviar de branca | Indicar on estàs treballant |
Un exemple amb gestor-tasques, escrit com a història i no com a ordres:
- L'Ana treballa a la branca
main. HEAD apunta amain. - En Bruno crea la branca
formulari-validacioper afegir validació al formulari d'index.htmli hi treballa. La branca d'en Bruno avança;maines queda on era. - Quan l'aplicació es publica per primer cop, l'equip posa l'etiqueta
v1.0sobre aquella confirmació. Aquesta etiqueta ja no es mourà mai: sempre assenyalarà exactament el que es va publicar.
Dues classes d'etiquetes
| Tipus | En anglès | Què desa |
|---|---|---|
| Lleugera | lightweight tag | Només un nom apuntant a una confirmació |
| Anotada | annotated tag | Un objecte propi amb autor, data, missatge i possible signatura criptogràfica |
Per a versions publicades es recomanen les anotades, perquè deixen constància de qui va publicar què i quan. El mòdul 5 hi dedica una lliçó completa.
- Col·laboració: remots, clons i forks
Aquests tres termes descriuen com un repositori es relaciona amb d'altres. El mòdul 4 els desenvolupa operativament; aquí només els definim.
Remot (remote). Un repositori diferent del teu amb el qual sincronitzes feina. No és "el servidor": és qualsevol altre repositori Git, que pot ser a GitHub, en un servidor de l'empresa o fins i tot en una altra carpeta del teu propi disc. Un repositori pot tenir diversos remots, cadascun amb un nom curt. Per convenció, el principal s'anomena origin.
Clon (clone). Còpia completa d'un repositori: tot l'historial, totes les branques, totes les etiquetes. Quan en Bruno cloni el repositori de gestor-tasques, tindrà exactament la mateixa informació que l'Ana, i Git configurarà automàticament el remot origin apuntant al lloc d'on va clonar.
Fork. Un concepte de plataforma, no de Git. És la còpia d'un repositori aliè sota el teu propi compte a GitHub, GitLab o similar, que et permet treballar-hi sense tenir permís d'escriptura a l'original. És la base del flux de contribució a projectes de codi obert, i es tracta al mòdul 7.
| Concepte | És de Git o de la plataforma? | On viu la còpia |
|---|---|---|
| Remot | Git | Referència a un altre repositori, en qualsevol lloc |
| Clon | Git | Al teu equip |
| Fork | Plataforma (GitHub, GitLab…) | Al teu compte del servidor |
Els quatre verbs que es faran servir constantment a partir del mòdul 4:
| Verb (ca) | Verb (en) | Què fa |
|---|---|---|
| Obtenir | fetch | Descarrega els canvis del remot sense tocar la teva feina |
| Baixar | pull | Descarrega els canvis i intenta integrar-los a la teva branca |
| Enviar | push | Puja les teves confirmacions al remot |
| Clonar | clone | Crea una còpia local completa d'un repositori remot |
La distinció entre fetch i pull és la que més problemes causa als principiants: fetch sempre és segur perquè no modifica res del que és teu; pull pot provocar fusions i conflictes.
- Integració: fusió i rebase
Dues maneres d'unir la feina de dues línies de desenvolupament. Aquí només les definim; el mòdul 3 tracta la fusió i el mòdul 5, el rebase.
Fusió (merge). Integra els canvis d'una branca en una altra creant una nova confirmació —la confirmació de fusió— que té dos pares: l'última confirmació de cada branca. L'historial conserva la forma real del que va passar: dues línies que es van separar i es van tornar a ajuntar.
gitGraph
commit id: "estructura HTML"
commit id: "estils base"
branch validacio
commit id: "validar camp buit"
commit id: "missatge d'error"
checkout main
commit id: "actualitzar README"
merge validacio id: "fusio"
Rebase. Pren les confirmacions d'una branca i les reaplica una a una sobre una altra base, com si la feina s'hagués fet des del principi a partir de l'estat més recent. El resultat és un historial lineal, sense bifurcacions visibles. A canvi, les confirmacions originals se substitueixen per altres de noves amb hash diferent: és una reescriptura de l'historial.
gitGraph
commit id: "estructura HTML"
commit id: "estils base"
commit id: "actualitzar README"
commit id: "validar camp buit'"
commit id: "missatge d'error'"
| Aspecte | Fusió (merge) | Rebase |
|---|---|---|
| Forma de l'historial | Ramificat, reflecteix el que va passar | Lineal, més fàcil de llegir |
| Confirmacions originals | Es conserven intactes | Se substitueixen per còpies noves |
| Confirmació addicional | Sí, la de fusió | No |
| Reescriu l'historial? | No | Sí |
| Risc en fer-lo servir en branques compartides | Baix | Alt: trenca la feina dels altres |
Conflicte (conflict). Tant la fusió com el rebase poden acabar en conflicte: passa quan les mateixes línies d'un fitxer s'han canviat de manera diferent a les dues bandes, i Git no pot decidir quina és correcta. No és un error ni una fallada: és Git demanant una decisió humana. Si en Bruno i la Carla modifiquen la mateixa regla d'estils.css, hi haurà conflicte; si en Bruno toca estils.css i la Carla app.js, Git integrarà tots dos sense intervenció.
- Vocabulari català ↔ anglès
Les ordres de Git són en anglès i no es tradueixen mai. La documentació en català, en canvi, tradueix els conceptes. Aquesta taula tanca l'escletxa.
| Català | Anglès | Ordre relacionada (per reconèixer-la, no per fer-la servir encara) |
|---|---|---|
| repositori | repository | git init, git clone |
| directori de treball | working tree | git status |
| àrea de preparació | staging area / index | git add |
| preparar (un canvi) | to stage | git add |
| despreparar | to unstage | git restore --staged |
| confirmar | to commit | git commit |
| confirmació | commit | git log |
| missatge de confirmació | commit message | git commit -m |
| branca | branch | git branch, git switch |
| canviar de branca | to switch / to check out | git switch |
| fusionar | to merge | git merge |
| conflicte de fusió | merge conflict | git merge |
| etiqueta | tag | git tag |
| remot | remote | git remote |
| clonar | to clone | git clone |
| obtenir | to fetch | git fetch |
| baixar | to pull | git pull |
| enviar | to push | git push |
| historial | history / log | git log |
| diferències | diff | git diff |
| instantània | snapshot | — |
| revertir | to revert | git revert |
| restablir | to reset | git reset |
| desar temporalment | to stash | git stash |
| ignorar | to ignore | .gitignore |
| reescriure l'historial | to rewrite history | git rebase |
Consell lingüístic. En un equip català real sentiràs una barreja: "fes-me una pull request", "he commitejat el canvi", "cal mergejar la branca". No és incorrecte en la conversa professional. En aquest curs farem servir la terminologia en català i afegirem el terme anglès entre parèntesis el primer cop, perquè reconeguis totes dues formes.
- Com encaixen tots els termes
Per tancar, un mapa mental que situa cada terme al seu lloc:
graph TD
R["REPOSITORI<br/>(projecte + .git)"]
R --> Z["Tres zones"]
R --> O["Objectes i historial"]
R --> RF["Referències"]
R --> RM["Relació amb altres repos"]
Z --> Z1["directori de treball"]
Z --> Z2["àrea de preparació"]
Z --> Z3["base de dades d'objectes"]
O --> O1["confirmació (commit)"]
O --> O2["instantània"]
O --> O3["hash / SHA"]
RF --> RF1["branca"]
RF --> RF2["etiqueta"]
RF --> RF3["HEAD"]
RM --> RM1["remot"]
RM --> RM2["clon"]
RM --> RM3["fork"]
RM --> RM4["fetch / pull / push"]
I la frase que resumeix tot el que hem vist, aplicada al nostre projecte:
Al seu repositori de
gestor-tasques, l'Ana edita fitxers al seu directori de treball, prepara els canvis que vol agrupar a l'àrea de preparació i crea una confirmació que queda registrada per sempre a.git. HEAD indica en quina branca està treballant; aquesta branca avança amb cada confirmació. Quan publiquen una versió, hi posen una etiqueta. En Bruno clona el repositori des del remotorigin, treballa a la seva pròpia branca i, quan acaba, la seva feina es fusiona amb la de l'Ana.
Si aquesta frase et resulta comprensible sencera, la lliçó ha complert el seu objectiu.
Errors Habituals i Consells
- Confondre "desar el fitxer" amb "confirmar". Desar a l'editor només escriu al disc; Git no s'assabenta de res fins que prepares i confirmes. Són dues operacions sense relació.
- Creure que l'àrea de preparació és una nosa. Al principi sembla un pas burocràtic de més. És justament el contrari: és el que permet que cada confirmació tingui una sola intenció en lloc de ser un calaix de sastre. En veuràs el valor tan bon punt tinguis canvis de tres tasques diferents barrejats a la teva carpeta.
- Pensar que una branca és una còpia de la carpeta. No ho és. És un punter de quaranta-un bytes. Aquesta confusió, heretada de SVN, fa que la gent eviti crear branques per por de "duplicar el projecte".
- Fer servir "fork" i "clon" com a sinònims. Clonar és endur-te una còpia al teu equip (és Git). Fer un fork és copiar el repositori al teu compte del servidor (és la plataforma). L'habitual és fer fork i després clonar el teu fork.
- Traduir "checkout" mentalment com a "confirmar".
checkoutsignifica "situar-se a", mai "desar". És un fals amic perillós perquè en alguns sistemes centralitzats significava "bloquejar un fitxer per editar-lo". - Entendre el conflicte com una fallada. Un conflicte significa que Git ha detectat correctament que dues persones han canviat el mateix i et demana una decisió. Que aparegui és senyal que el sistema funciona.
- Consell: torna a aquesta lliçó. No cal memoritzar la taula avui. Tingues-la a mà i rellegeix-la en començar cada mòdul nou; els termes s'assenten amb l'ús.
Exercicis
Exercici 1: Identificar estats
L'Ana té el seu repositori de gestor-tasques amb index.html, estils.css, app.js i README.md confirmats. Durant una tarda de feina fa el següent, en aquest ordre:
- Edita
estils.cssper canviar el color de fons. - Prepara
estils.css. - Crea un fitxer nou,
notes-personals.txt. - Edita
app.jsper afegir l'esborrat de tasques. - Torna a editar
estils.cssper ajustar un marge.
Indica en quin estat es troba cadascun dels cinc fitxers al final de la tarda. Compte amb el punt 5.
Exercici 2: Traduir l'argot
Tradueix aquestes cinc frases d'argot professional a un català precís fent servir la terminologia de la lliçó, i indica a quin mòdul del curs pertany cada operació:
- "Fes-me un fork del repo i després clona-te'l."
- "Stageja només el CSS, el JS deixa'l fora del commit."
- "He fet pull i m'han saltat conflictes a
app.js." - "Tagueja la versió 1.0 a la master."
- "Rebasa la teva branca sobre main abans de mergejar."
Exercici 3: Vertader o fals raonat
Indica si cada afirmació és vertadera o falsa i explica per què:
- Si esborro la carpeta
.git, perdo els fitxers del meu projecte. - Una etiqueta es mou automàticament quan faig una nova confirmació.
git fetchpot provocar un conflicte de fusió.- Un fitxer pot estar preparat i modificat alhora.
- Un clon conté menys informació que el repositori original.
- HEAD sempre apunta a una branca.
Solucions
Solució a l'Exercici 1
| Fitxer | Estat final | Explicació |
|---|---|---|
index.html |
Confirmat, sense canvis | No s'ha tocat |
README.md |
Confirmat, sense canvis | No s'ha tocat |
estils.css |
Preparat i modificat alhora | El canvi de color està preparat (pas 2); l'ajust de marge (pas 5) és posterior i no està preparat |
notes-personals.txt |
Sense seguiment | Git mai no l'ha registrat i no s'ha preparat |
app.js |
Modificat, no preparat | Es va editar però no es va preparar |
El punt interessant és estils.css: la versió que hi ha a l'àrea de preparació (amb el color nou, sense el marge) i la que hi ha al directori de treball (amb tots dos canvis) són diferents. Si l'Ana confirmés ara, l'ajust de marge no entraria a la confirmació.
Solució a l'Exercici 2
- "Fes una còpia del repositori al teu compte (fork) i després clona-la al teu equip." → Fork: mòdul 7. Clonar: mòdul 2 i mòdul 4.
- "Prepara només el fitxer CSS; deixa el JavaScript fora de la confirmació." → Mòdul 2.
- "He baixat els canvis del remot i han aparegut conflictes de fusió a
app.js." → Baixar: mòdul 4. Conflictes: mòdul 3. - "Posa una etiqueta amb el nom
v1.0sobre l'última confirmació de la branca principal." → Mòdul 5. - "Aplica un rebase de la teva branca sobre
mainabans de fusionar-la." → Rebase: mòdul 5. Fusió: mòdul 3.
Solució a l'Exercici 3
- Fals. Els fitxers del directori de treball són fitxers normals i continuen allà. El que es perd és tot l'historial: confirmacions, branques, etiquetes i configuració local. El projecte es converteix en una carpeta corrent.
- Fals. Aquest és el comportament d'una branca, que avança amb cada confirmació. Una etiqueta és fixa per definició: sempre assenyala la mateixa confirmació. És justament el que la fa útil per marcar versions publicades.
- Fals.
fetchnomés descarrega informació del remot i actualitza les referències remotes; no toca ni el teu directori de treball ni les teves branques locals, així que no pot provocar conflictes. Qui els pot provocar éspull, perquè descarrega i integra. - Vertader. És exactament el cas d'
estils.cssa l'exercici 1. Les tres zones contenen versions independents del mateix fitxer, així que hi pot haver diferències tant entre repositori i àrea de preparació com entre àrea de preparació i directori de treball. - Fals. Un clon conté l'historial complet: totes les confirmacions, branques i etiquetes. Aquesta és precisament la característica que defineix un sistema distribuït, com vam veure a la lliçó Què és Git?. (Existeixen clons deliberadament parcials —shallow clones— però són l'excepció, no la norma; es tracten al mòdul 10.)
- Fals. L'habitual és que HEAD apunti a una branca, però pot apuntar directament a una confirmació: és l'estat de HEAD desacoblat (detached HEAD), que es produeix en situar-se en un punt concret de l'historial. Es tracta al mòdul 3.
Conclusió
Ja disposes del vocabulari que sosté la resta del curs. Els conceptes clau són tres zones (directori de treball, àrea de preparació i repositori) i tres estats (modificat, preparat, confirmat), que junts expliquen el flux bàsic de treball. Sobre ells es recolzen les referències —branques, etiquetes i HEAD—, que són noms apuntant a confirmacions, i els conceptes de col·laboració —remot, clon, fork— i d'integració —fusió, rebase, conflicte—, que desenvoluparem als mòduls 3, 4 i 5.
També has vist la correspondència català↔anglès, imprescindible perquè les ordres no es tradueixen mai i en un equip real sentiràs les dues formes barrejades.
Ja sabem com es diuen les coses. La pregunta següent és com són per dins: què desa Git exactament quan confirmes, per què els identificadors són hashos de quaranta caràcters i què hi ha dins de .git. És el contingut d'El Model de Dades de Git, la lliçó que aporta el model mental sobre el qual descansen tots els mòduls següents.
Dominant Git: De Principiant a Avançat
Mòdul 1: Introducció a Git
- Què és Git?
- Instal·lant Git
- Terminologia Bàsica de Git
- El Model de Dades de Git
- Configurant Git
- Configuració Inicial
Mòdul 2: Operacions Bàsiques de Git
- Creant un Repositori
- Clonant un Repositori
- Flux de Treball Bàsic de Git
- Preparant i Confirmant Canvis
- Inspeccionant Canvis amb git diff
- Visualitzant l'Historial de Confirmacions
Mòdul 3: Branques i Fusió
- Entenent les Branques
- Creant i Canviant Branques
- Fusionant Branques
- Estratègies de Fusió
- Resolent Conflictes de Fusió
- Gestió de Branques
Mòdul 4: Treballant amb Repositoris Remots
- Entenent els Repositoris Remots
- Afegint un Repositori Remot
- Autenticació amb Repositoris Remots
- Obtenint i Baixant Canvis
- Enviant Canvis
- Rastrejant Branques
Mòdul 5: Operacions Avançades de Git
- Rebase
- Rebase Interactiu
- Cherry-Picking de Confirmacions
- Desant Canvis Temporals
- Etiquetant Confirmacions
- Revertint Confirmacions
Mòdul 6: Eines i Tècniques de Git
- Usant Git Hooks
- Git Bisect
- Git Blame
- Git Log i Àlies
- Submòduls de Git
- Múltiples Còpies de Treball amb git worktree
Mòdul 7: Estratègies de Col·laboració i Flux de Treball
- Forks i Pull Requests
- Revisions de Codi amb Git
- Flux de Treball Git Flow
- GitHub Flow
- Trunk Based Development
- Integració Contínua amb Git
Mòdul 8: Bones Pràctiques i Consells de Git
- Escrivint Bons Missatges de Confirmació
- Mantenint un Historial Net
- Ignorant Fitxers amb .gitignore
- Atributs de Fitxer amb .gitattributes
- Bones Pràctiques de Seguretat
- Consells de Rendiment
Mòdul 9: Resolució de Problemes i Depuració
- Problemes Habituals de Git
- Desfent Canvis
- Resolent Divergències amb el Remot
- Recuperant Confirmacions Perdudes
- Tractant amb Repositoris Corruptes
- Tècniques Avançades de Depuració
