Usant Git per al control de versions

Hem passat a treballar amb ferramentes tipo Filezilla, més tard a sistemes de control de versions com CVS i, anys més tard, a SVN, Mercurial i altres. I des de fa tres anys he escoltat parlar sobre Git. Aquest article el faré servir a mode d'apunts, i pot ser el modificaré i l'ampliaré a mesurea que tinga la necessitat d'aprofundir.

Hi han dues maneres de començar a usar Git: una és començant a iniciar Git inicialitzant un directori amb git ini, i ja podem treballar com de costum afegint fitxers, fent commits, etc.
I l'altra manera és clonar un respositori existent amb git clone.

La manera més fàcil per a usar i comprendre el sistema de control de versions Git és – en la meua opinió - per una banda crear un repositori al conegut www.github.com i després, al nostre ordinador, crearem una còpia local clonant el nostre respositori. En en qüestió de 5 minuts ja ho tenim tot preparat i llest per a començar a controlar les versions dels nostres fitxers i scripts.

Vaig a donar per suposat que ja tenim instal·lat un client de Git al nostre ordinador (MacOsX, GNU/Linux, BSD, etc...) i també que ja tingues un compte a www.github.com i també tingues creat un repositori.

Doncs bé, com que volem sincronitzar la nostra còpia local amb el servidor via SSH, primer de tot, necessitem crear una clau SSH i donar-li la clau pública a GitHub per a que confie en nosaltres.

Per a crear una clau SSH, anirem al directori ocult ssh del nostre usuari:


cd ~/.ssh

Ara generem la clau amb:


ssh-keygen -t rsa -C "joan@riseup.net"

Ara, anem a la configuració del nostre gitHub i, a l'apartat 'Add SSH key' desem el contingut de id_rsa.pub al camp Field.

Ara modem provar l'accès amb:


$ ssh -T git@github.com
Hi joancatala! You've successfully authenticated, but GitHub does not provide shell access.
$

Ja tenim l'accès creat correctament.

Ara ja podem crear un directori amb:


mkdir el_nostre_repo

A continuació podem afegir tots els fitxers que vullgam.

Una vegada hem ficat els fitxers que volem, els afegim al repositori:


git add *

I ara fem el commit:


git commit -m 'Primer commit gran'

Fins ara, tot és molt semblant al Subversion.

Ara, finalment, li direm amb quin repositori existent volem connectar:


git remote add origin git@github.com:joancatala/evendejo.git

I ara pujem els fitxers amb push, que lo que fa aquest commando és pujar tots els commits que estiguen pendents i que encara no els he pujat al servidor (per a la teua informació, que sàpigues que podem treballar amb Git fins i tot sense internet, i tots els commits que fem es van enmagatzemant a una cua fins que fem el push):


git push origin master

Un altre dia, si volem afegir nous canvis, imatges o nous fitxers al nostre projecte, treballem com sempre, i quan vullguem ja afegir els canvis al repositori farem:


git -a -m "Nous canvis"

I per a pujar-los finalment:

git push origin master

Si tenim algun problema de versions, podem sobreescriure la versió que tenim al nostre respositori local que, per algun motiu, és distint al del servidor:


git fetch origin

Com pots veure, en qüestió de 5 minuts ja tens un directori local sincronitzat amb el repositori de GitHub.