This entry was posted on Dimanche, octobre 4th, 2009 at 21 h 25 min and is filed under Logiciel libre. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


Découverte de Git
Aujourd’hui je vais vous présenter Git, et les commandes de bases pour la création de dépôt, les commits en local et quelques commandes de bases. Je n’irai pas plus loin, car plutôt que de faire une très longue pages qui serait fatigante à lire je préfère couper cela en plusieurs parties. La prochaine sera réservé à la découverte du fonctionnement des branches, puis une autre sera réservé aux différentes interface graphique disponible pour lire les journaux des commits etc…
Git est un logiciel de gestion de versions décentralisé écrits par Linus Torvalds. Pour la petite histoire Git a été initialement écrit pour remplacer BitKeeper 1 qui avait décidé d’arrêter de fournir la version gratuite en 2005. L’arrêt aurait été à cause de Andrew Tridgell qui avait développé un logiciel open-source permettant d’afficher certaines informations qui n’était pas disponibles dans la version gratuite de BitKeeper. Git signifie connard dans l’argot en anglais. Linus aurait dit « je ne suis qu’un égocentrique, donc j’appelle tous mes projets d’après ma propre personne. D’abord Linux, puis git. »
La grande force de Git est donc d’être décentralisé bien-sur ce n’est pas le seul il en existe d’autres comme, Mercurial écrit Python, Bazaar écrit en Python également et sponsorisé par Canonical, Darcs, et certainement d’autres encore. Mais Git semble être celui qui ce démarque le plus, il est déjà un petit peu plus rapide que Mercurial ou Bazaar et il est très certainement plus complet même si on utilisera généralement pas Git à plus de 5% de ces capacités.
Contrairement à Subversion Git ne travail pas avec des numéros de révisions mais avec des hash SHA1. Cela peut certainement dérouter au début mais on s’y habitue. Cela permet à Git de gérer ces objet avec des identifiant unique, il n’est pas possible d’avoir deux fichiers avec un contenu différent ayant le même hash. Tant qu’un fichier n’est pas modifié le hash reste inchangé et n’est stocké qu’une seul fois. En revanche si le fichier est modifié les deux versions sont stocké sur le disque.
Pour installer Git sur une distribution Debian ou un de ses dérivées il faudra installer le paquet git-core, git tout court correspond à un outil gitfm pour Gnu Interactive Tools File Manager. Ce qui n’a rien a voir.
sudo apt-get install git-core |
Une fois Git installé nous allons pouvoir le configurer un petit peu. Lorsque je dis configurer c’est un bien grand mot, il s’agit simplement d’indiquer des information sur vous votre nom, mail qui seront indiqué dans les journaux de Git, et l’éditeur que vous préférez qui sera ouvert lors des commits pour indiquer le message.
git config --global user.name "Votre nom ou pseudo" git config --global user.email mail@mail.com git config --global core.editor vim |
On indique Vim parce-que Vim c’est le meilleur de tous les éditeurs. Non, non je ne lance pas de troll.
Je risque très certainement d’en décevoir plus d’un, mais finalement utiliser Git n’est pas si compliqué que ça, du moins pour utilisation basique. J’aurai même envie de dire qu’il est plus naturel, dans le sens où Git va vous pousser à utiliser des branches2. Vous pourrez par exemple créer une branche unstable qui serait les commits récent pas encore tester, puis une fois que le code aura été testé le merger dans master. Ceci n’est qu’un exemple bête je n’ai rien trouvé d’autres, mais c’est simplement pour expliquer que svn vous a fait prendre de mauvaise habitude à travailler directement sur trunk, et que contrairement à svn la gestion des branches en Git est très agréable et facile. Alors j’aurai simplement envie de dire abuser des branches.
Pour créer un dépôt Git il vous faudra vous placer dans le répertoire cible qui sera votre répertoire de travail par la suite et nous allons initialiser le dépôt.
git init |
Le répertoire .git est maintenant créé vous pourrez le constater avec un ls -a. Globalement c’est comme un .svn, il va contenir des informations notamment l’historique. Le dépôt est pour le moment vide et ne contient pas encore les fichiers du projet. Il va donc falloir ajouter les fichiers au dépôt. Si votre répertoire contient déjà les fichiers vous pouvez utiliser le joker.
git add * |
Si vous souhaitez simplement ajouter un fichier en particulier il vous suffit de préciser son nom.
git add essai.pl |
Si vous n’avez pas encore de fichier créé un fichier d’essai. Pour vous exercer.
touch essai.pl |
De la même façon qu’avec Subversion il vous est possible de connaître l’état des fichiers du dépôt.
git status |
Maintenant que le fichier a été ajouté on peut faire un premier commit.
git commit -m "Ceci est mon premier commit avec Git, c'est trop génial." |
Nous allons maintenant nous amuser à modifier un peu le fichier.
echo "Un essai de modification. Juste histoire de s'amuser un peu pour découvrir Git." >> essai.pl |
Si vous faite de nouveau un git status vous verrez que votre fichier a été modifié, mais qu’il n’a pas été mis à jour. Dans le fonctionnement cela signifie que Git ne considère pas les modifications d’un fichier comme un fichier à commiter ce qui n’est pas plus mal finalement, même si cela peut surprendre la première fois. Il va donc nous falloir ajouter le fichier dans le cache prêt à être commiter.
git add essai.pl |
On peut visualiser ce qui sur le point d’être commité.
git diff --cached |
Vous pouvez maintenant commiter votre fichier.
git commit |
Si vous souhaitez commiter tous les fichiers qui ont été modifié vous pouvez vous passer de l’étape d’ajout de fichier.
git commit -a |
L’option pour all.
En conclusion pour le moment nous avons pu constater que git n’est pas si difficile que cela de prise en main dans une utilisation basique qui est suffisante pour débuter un projet, et avoir une historique des modifications. Nous avons aussi constaté que Git offrer des avantages certains à Subversion, il est très rapide de créer un dépôt, il est tellement rapide et facile de créer un dépôt que vous allez prendre l’habitude de créer des dépôts pour tout et n’importe quoi même pour des petits scripts, fichier de conf, rapport LaTeX etc… Ce qui est une très bonne habitude. Vous ne dépendait pas d’un serveur, vous n’avez donc pas besoin de réseau pour commiter il vous sera donc possible de commiter depuis n’importe où, avion, train, fin fond de la montagne, ou je ne sais où encore. Git va clairement changer votre façon de travailler, vous allez être moins retissant à l’idée de créer un dépôt, vous allez faire des commits beaucoup plus régulièrement, vous aller être plus organiser et travailler avec des branches et pleins de bonne chose encore je pense. Git fut pour moi une révélation, et en un mot je dirai que Git est génial. Alors n’hésiter pas à l’adopter pour vous faire votre propre idée. Dans un prochain article nous verrons les push sur un dépôt, et la création des branches.
Comme je sais que je ne suis pas forcément un des meilleurs pédagogue, que je n’exprime forcément très bien les idées de Git, et que je ne suis pas parfait tout simplement. Je vais vous faire partager une liste d’article que j’ai trouvé sur la toile. Bien-oui, car il y a de nombreuses personnes déjà qui ont parlé de Git en français.
Git sur wikipedia
Découvrir Git
Une comparaison de Git vs SVN
Une autre manière d’utiliser Git
Utiliser Git avec Github
Un tutorial Git
Un autre tutorial
Un dernier pour la route
- un logiciel de gestion de versions décentralisé aussi mais propriétaire [↩]
- C’est aussi une des force de Git la puissance des branches [↩]
4 Responses to “Découverte de Git”
Leave a Reply



octobre 4th, 2009 at 19 h 56 min
[...] This post was Twitted by hobbestigrou [...]
octobre 4th, 2009 at 23 h 02 min
Un autre lien avec une bonne doc : http://alexgirard.com/git-book/index.html
octobre 6th, 2009 at 11 h 27 min
http://www.pierreschambacher.com/blog/git-in-a-nutshell/
janvier 17th, 2010 at 22 h 57 min
[...] Ce qui est un peu plus court ça fera du bien à vos doigts. Je rappel que la commande git checkout permet de changer de branche et non de récupérer les sources d'un dépôt contrairement à svn. J'avais déjà indiqué les commandes à utiliser pour, indiquer des informations sur votre nom d'utilisateur et l'éditeur lorsque j'avais présenté Git. [...]