Version … Git

Vous connaissez sûrement svn, l’outil de versionning qui vous permet de faire du développement propre:

  • stocker des informations
  • conserver l’historique des versions
  • collaboration

Bref c’est cool pour tous les Dév… mais c’est aussi bien pour les NetAdmins, SysAdmin, Geeks qui souhaiteraient conserver l’évolution de leurs fichiers de configuration par exemple. (ou distribuer leurs fichiers de configuration sur le nouveau cloud)

GIT est un outil de versionning: pas n’importe lequel car il a été fondé et est utilisé par un illustre développeur Linus Torvald. Mais bon, à part cela rien d’exceptionnellement neuf, même si la simplification des « merges » de sources est un argument mis en avant.

Là ou avec svn, les développeurs toujours en retard ou toujours pressés finissent par développer directement dans le trunk, GIT permet de simplifier la consolidation de code dans les branches « merge ». Cela permet de conserver une discipline dans le développement.

Git historique
Git historique

Envie de tester … rien de plus facile !
Il n’y pas besoin de créer de serveur ou d’arborescence spéciale.

[ccNL_bash]
cd rep
git init
git add .
git commit -m »Ma première photo »
[/ccNL_bash]

Vous vous lancez dans une nouvelle version… il faut prendre l’habitude de créer une branche.
[ccNL_bash]
git branch NewVersion
git checkout NewVersion
… lâchez vous …
git commit -a -m »C’est good »
… vous êtes prêts …
git checkout master
git merge NewVersion
git branch -d NewVersion
[/ccNL_bash]

Bon, tout cela c’est bien joli … mais tout seul cela n’a pas d’intérêt si c’est pour s’amuser dans son coin. Je vous propose une méthode simple via apache:
[ccNL_bash]
git clone –bare /tmp/myrepo.git
# Copier le répertoire /tmp/myrepo.git sur votre serveur web
# Activer le mod WebDav/Fs sur ce répertoire > « Dav on » dans la section
# Ajouter un .htaccess si vous souhaitez mettre un mot de passe.
# Ajouter le fichier de lock « DAVLockDB /tmp/DAVlock »

git clone http://monserveur/myrepo.git
git pull # pour les mises à jour depuis le serveur
git push # pour mettre les commit sur le serveur
git push origin branch # pour mettre une branche sur le serveur
git push origin :branch # pour supprimer la branche
[/ccNL_bash]

Il est aussi possible avec git de marquer un commit avec un tag… ce qui permet de le retrouver facilement sans avoir à se rappeler du hash sha.

[ccNL_bash]
git tags v2 #Attention: ne pas mélanger les noms de branches et de tags
git push –tags
[/ccNL_bash]

Avec ces quelques lignes vous devriez avoir un système fonctionnel assez rapidement pour vous donner l’envie de tester plus.

Si vous souhaitez aller plus loin:
Defendre Git: http://fr.whygitisbetterthanx.com/ << a lire Pro Git: http://progit.org/book/
Git Magic: http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/fr/
Book Git http://book.git-scm.com/
GitHub : https://github.com/
GitReady: http://gitready.com/
Git Friend: http://hades.name/blog/2010/01/28/git-your-friend-not-foe-vol-3-refs-and-index/