git-logo

Git est un gestionnaire de version décentralisée. Il a été créé par Linus Torvarlds également créateur du noyau Linux. Ce projet est sous licence GPL et est principalement développé en C avec également un peu de Shell et de Perl.

A l’origine, Linus Torvarlds à développé Git pour proposer une alternative libre a un gestionnaire de version décentralisée baptisé BitKeeper. Git est aujourd’hui vu comme le successeur de SVN (2000), lui-même successeur de CVS (1990) et s’impose pour les raisons suivantes :

  • Sa rapidité
  • Sa robustesse

Présentation

Comme SVN, Git est un système de gestion de version. Son principe est d’avoir un référentiel du code sur un serveur et accessible à tous les développeurs. Il est conçu pour travailler efficacement  sur les projets en équipe. Contrairement à SVN, Git est un système dit « distribué »  . C’est à dire que chaque développeur dispose d’une copie de travail et de ses versions sur sa machine en local et peut se les échanger via le serveur.

Avantages

  • Tout le monde dispose du repository entier, et peut ainsi consulter les logs et/ou changements entre les révisions sans qu’il soit nécessaire de se connecter a un serveur. La plupart des actions sont donc locales et donc très rapides.
  • Git surveille le contenu et non les fichiers, c’est à dire que le système est capable de savoir qu’une fonction a été déplacée d’un fichier à un autre. Le merge en est d’autant plus amélioré et le nombre de conflit est donc très faible.
  • La création de branche est facile et ne coûte pas
    grand-chose, une nouvelle arborescence n’est pas créée dans le système de fichier.

Inconvénients

  • L’utilisation de Git nécessite de changer le comportement de toute l’équipe afin qu’elle oublie sa façon de travaille sous SVN ou CSV et monte en compétence sur Git.
  • Du fait que le système soit décentralisé il fait utiliser une commande supplémentaire (push) pour qu’un commit soir visible au reste de l’équipe.
  • Il existe peu d’outils graphiques, la meilleures solution reste d’utiliser Git en lignes de commandes (J’utilise en projet le plugin egit pour Eclipse qui est de mieux en mieux)

Commandes

Comme pour chaque outils il existe toujours un tas de commande, voici certainement les plus populaires :

git init – initialiser un nouveau dépôt
git add – ajouter un nouveau fichier à l’index du projet pour qu’il soit pris en compte dans le versionning
git commit – valider les modifications
git pull – pour télécharger les nouveautés depuis le serveur
git push – pour envoyer vos modifications sur le serveur
git status – pour connaître toutes les modifications qui n’ont pas encore été validées
git branch – crée une nouvelle branche de développement
git merge – fusionne plusieurs branches de développement
git revert – pour annuler des modifications et revenir à une certaine version
git diff – voir ce qui a changé sur un fichier depuis une certaine version

Atlassian – Stash

Je ne pouvais pas parler de Git sans évoquer Stash de Atlassian. Très impliqué dans la promotion de Git, Atlassian a créé Stash, qui est un des meilleurs outils d’interfaçage de Git sur le marché.

Voici un webinar qui présente l’utilisation de Git à travers Stash :

Ressources

Site officiel de Git : https://git-scm.com

Le livre Pro Git disponible en intégralité et traduit en français : https://git-scm.com/book/fr/v1

Le guide d’Atlassian (qui est très très bien fait) : https://www.atlassian.com/git/

GitHub, plate-formes collaboratives Git sur laquelle on peut créer et gérer un projets sans avoir à installer un serveur : https://github.com

Publicités