El Git és tremendament flexible, i les seues possibilitats quant a creació i combinació de branques són quasi infinites. Les branques (múltiples còpies d’un mateix repositori) ens permeten separar una sèrie de canvis mentre experimentem amb ells o crear diferents versions d’un projecte, sense alterar l’arbre principal del mateix. Les branques al Git es poden fer ràpida i fàcilment.
Combinar-les amb l’arbre principal és igual de fàcil, per la qual cosa paga la pena usar-les sempre que es treballe en alguna cosa nova. Les ordres més bàsiques són:
- git branch per a llistar les branques actuals del projecte.
- git branch NombreDeLaBranca per a crear una branca nova.
- git branch -d NombreDeLaBranca per a eliminar una branca.
- git checkout NombreDeLaBranca per a actualitzar el directori de treball actual de manera que reflectisca la branca NombreDeLaBranca. Per a crear una branca al mateix temps que fem un checkout utilitzem git checkout -b NombreDeLaBranca.
Imaginem que volem crear una branca nova a partir del nostre projecte i cridar-la V1.5. El primer que cal fer és crear la branca nova:
git branch V1.5
El repositori compta ara amb dues branques, però el directori de treball actual encara es correspon amb la branca principal (el nom de la qual per defecte és master). Si executem git branch, veurem un llistat amb totes les branques, la que s’estiga fent servir actualment estarà marcada amb un asterisc.
Per a canviar a la nova branca i començar a treballar en ella, introduïm:
git checkout V1.5
L’ordre:
git status
mostrarà llavors el nom d’aquesta branca amb un asterisc al costat d’ell. Efectuarem canvis i els enviarem normalment, i després farem servir l’ordre:
git checkout master
per tornar a la branca principal. Els nostres canvis deixaran de ser visibles a partir d’eixe moment. En tornar a la branca V1.5, tornaran a ser allà.
Per canviar les branques de manera que formen una de sola, executem un merge:
git merge NombreDeLaBranca
D’aquesta manera, combinem NombreDeLaBranca amb la branca en la qual ens trobem (en el directori de treball actual). Per tant, en aquest exemple, el que fem és tornar a la branca principal (git checkout master) i introduir git merge V1.5 per a combinar els canvis que hi ha en ella. A partir de llavors, la branca principal i la branca V1.5 seran idèntiques, encara que git status ens diu que la branca V1.5 encara existeix. No hi ha cap problema en tornar a la branca V1.5 i seguir treballant en ella.
Tingueu en compte que el Git es negarà a combinar les branques si tenim en elles canvis sense enviar, ja que en combinar-les se sobreescriurà el directori de treball actual. Si per algun motiu no es poguera fer un commit, es pot usar git stash (vegeu la «Funcionalitat Stash» del Git).
En fer combinacions, de ser possible, el Git completarà el commit automàticament per nosaltres. Però a vegades hi ha conflictes en els fitxers (per exemple, canvis que s’afecten uns a uns altres). En eixos casos, la combinació falla, proporcionant informació sobre el fitxer o els fitxers problemàtics.
L’ordre git status presentarà aquests fitxers com unmerged. Per a resoldre el conflicte, s’han d’obrir els fitxers problemàtics en un editor de textos. Allà es mostren ambdues versions del fitxer perquè triem com volem resoldre el problema. Una vegada que s’ha editat el fitxer, fem un git add fitxer.txt per cada fitxer en conflicte, per a acabar amb un git commit que envie els canvis de la combinació.
Com a alternativa, podem usar git commit -a per a marcar automàticament tots els conflictes com a resolts. Lògicament, haurem d’estar completament segurs que realment s’han resolt abans de fer-ho.
Article anterior
Article següent





