GIT: Sistema de control de versions distribuït

Després d'uns mesos resistint-me a fer-hi un cop d'ull (em pensava que amb el SVN en tenia prou) he decidit mirar com funciona això del SCM distribuïts. Aquest n'és l'enllaç:
- http://git-scm.com/

He de dir que m'ha sorprès gratament, i és quelcom que molts cops havia pensat que calia fer. Jo m'ho plantejava com una funcionalitat per fer "desfer" i "refer" en rames. I el que ens trobem és un sistema de control de versions descentralitzat (tenim tota la còpia accessible en el propi directori) i del que podem generar tantes branques com vulguem des de qualsevol punt del desenvolupament i que poden incorporar-se a qualsevol altra branca en qualsevol moment o simplement deixar-les orfes.

En aquest sentit un desenvolupador sol li va perfecte per fer proves en paral·lel i tenir tot l'històric de modificacions sense necessitat de cap servidor.

També és ideal en grups de treball petits, que poden compartir el desenvolupament entre ells, o simplement que un faci de servidor copia principal.

Si ho hem de resumir d'alguna manera, pels usuaris de SVN… diria que és l'SVN amb els seus commit, però amb la diferència que els commits són locals i per enviar i rebre les modificacions dels repositoris remots (en podem tenir més d'un) és fa amb pull (fetch + merge) i push.

La branca principal s'anomena "master" i normalment és la que s'utilitza per compartir amb els altres. La resta de branques que creem seran bàsicament d'ús personal (tot i que també és poden compartir amb altre desenvolupadors). D'aquesta manera un desenvolupador pot treballar en paral·lel (sol o en grup) una nova idea i després integrar-la a la branca principal i enviar-la al responsable d'aquesta.

Bé, no sé si m'explico massa bé. Però la idea crec que es transmet. Només cal que tingueu clar que els qui tingueu la tendència de treballar amb molts fronts oberts ho podeu fer amb molta facilitat.

Bé, si ho proveu ja hi direu la vostra. Aquí hi teniu una mica de mini-tutorial que em vaig fent.
- http://comesfa.xin.cat/Manual:GIT

Xin  sep  01 febrer 2009 15:15

Per als que tingueu Mac OS X, hi ha una eina magnífica per a gestionar les versions. Es diu GitX: http://gitx.frim.nl/

Aquí en teniu unes captures amb el propi repositori del GitX:

imatgeimatgeimatgeimatgeimatgeimatge

Xin  sep  03 febrer 2009 10:13

Bé, després d'un parell de dies organitzant la feina i mirant de veure com s'han de fer les coses, he de dir que m'està agradant bastant. :-D

Amb una facilitat aplastant m'he dividit les meves idees i feines en diferents branques. He deixat a la branca "master" l'última versió que tenia a l'SVN. M'he creat una branca genèrica "devel" i d'aquesta n'he creat una de diferent per cada idea i feina que estava desenvolupant.

Ara només hauré de fer una ullada a les branques que tinc obertes i anar a la branca amb que vull treballar. Si em quedo bloquejat, puc fer un commit dels canvis i anar a una altra branca.

Si a l'hora de desenvolupar una cosa tinc dues idees diferents i no estic segur de quina fer servir, simplement creo una altra branca a partir de l'actual i en desenvolupo una de les dues, si després no em convenç, torno al punt anterior, i creo una altra branca per desenvolupar la segona idea. Quan decideixo quina m'agrada la integro a la branca d'on ha sortit. I l'altra o la deixo penjada o l'esborro.

Si em trobo amb algun error mentre desenvolupo una branca, vaig a la branca master, obro una branca per reparar l'error, el reparo i l'aplico a la branca master. I després torno a la branca on estava treballant.

Bé, segur que no és la millor manera de treballar-hi, però és com ho faig. I he de dir que no em quedo tant bloquejat com em quedava abans d'avant del dilema entre escollir una opció o una altra.

Xin  sep  05 febrer 2009 12:29

He ampliat una mica el manual. Va de conya.
- http://comesfa.xin.cat/Manual:GIT

Xin  sep  05 febrer 2009 19:19

Selecciona'l abans d'enviar el commentari