@@ -863,6 +863,16 @@ Hauràs notat que el merge de l'escenari base era un _fast-forward_ ("Fast-forwa
La intuïció: el fast-forward és "no t'has mogut, només m'actualitzo"; el commit de merge és "tots dos hem fet feina, ho ajunto i ho deixo registrat". Per això un historial amb merges sovint té forma de diamant, i un de només fast-forwards és lineal.
#### Preferir el fast-forward
De vegades el fast-forward no és només el que passa, sinó el que **vols** que passi: que una branca no divergeixi mai i es limiti a seguir l'altra. El cas més clar és el teu `main` local respecte d'`origin/main`. Quan baixes la feina dels companys, gairebé mai no vols un commit de merge entre tots dos: vols que el teu local simplement es posi al dia. Si un dia no es pot fer fast-forward, vol dir que tots dos heu avançat pel vostre compte (heu divergit), i és el senyal per aturar-se a mirar què ha passat abans d'ajuntar res.
Aquesta preferència es pot fer explícita amb `--ff-only`: git integra només si és un fast-forward i, si no, s'atura en comptes de crear un commit de merge tot sol. Fixa't que reacciona a la **divergència**, no al conflicte: que les branques hagin divergit no vol dir que el merge tingui conflictes (pot ser net o no), però `--ff-only` s'atura igualment, perquè el que vols garantir és que la branca només avanci en línia recta.
Si vols garantir aquest comportament, val més deixar-lo configurat per defecte que no pas recordar el flag cada vegada: amb `git config --global pull.ff only` (per als `pull`) i `git config --global merge.ff only` (per als `merge`), veure la [FAQ](#git-pull-merge-o-rebase), la comprovació és automàtica i git et frena sol quan apareix una divergència. Hi guanyes una història **lineal**, més fàcil de llegir i de desfer, i un punt de control que t'obliga a integrar de manera conscient (amb merge o rebase) en lloc de generar bombolles de merge sense voler.
Tot i així, és una configuració per defecte, no una imposició: quan puntualment vulguis un commit de merge, el pots forçar amb `git pull --no-ff` (o `git merge --no-ff <branca>`), que té prioritat sobre la configuració. Així el commit de merge passa a ser un acte deliberat en lloc d'una cosa que passa sola.
## Operacions habituals
Més enllà del cicle bàsic de sincronitzar i pujar canvis, hi ha un conjunt d'operacions que faràs sovint: etiquetar versions, recuperar estats anteriors, comparar canvis i esborrar arxius del control de versions.