Git – the fast version control system

Git est un gestionnaire de code source distribué, gratuit et open-source créé par Linus Torvalds, le créateur de Linux

Lien vers le site web de Git : http://git-scm.com/
Les principaux avantages de Git sont :

  • Facilité de gestion des branches et des fusions
  • Rapidité : chaque développeur travaille sur un dépôt local
  • Git est un gestionnaire de contenu et non les fichiers. Il est capable de savoir qu’une fonction a été déplacée d’un fichier à un autre.
  • Liberté à chaque développeur ou société de choisir son mode de fonctionnement. Chacun peut choisir son workflow de traitement des modifications.
  • Github hébergeur communautaire facile à utiliser : http://github.com/
  • Un unique répertoire .git à la racine de votre dépôt

Git est un gestionnaire de code source distribué, gratuit et open-source créé par Linus Torvalds, le créateur de Linux

Lien vers le site web de Git : http://git-scm.com/
Les principaux avantages de Git sont :

  • Facilité de gestion des branches et des fusions
  • Rapidité : chaque développeur travaille sur un dépôt local
  • Git est un gestionnaire de contenu et non les fichiers. Il est capable de savoir qu’une fonction a été déplacée d’un fichier à un autre.
  • Liberté à chaque développeur ou société de choisir son mode de fonctionnement. Chacun peut choisir son workflow de traitement des modifications.
  • Github hébergeur communautaire facile à utiliser : http://github.com/
  • Un unique répertoire .git à la racine de votre dépôt

Ses inconvénients sont :

  • Approche différentes de SVN d'où la nécessité de former les utilisateurs
  • Un nombre de commandes important, mais seulement quelques unes utilisées régulièrement

Fonctionnement de Git

Chaque objet est repéré grâce un identifiant unique une clé SHA-1 de 40 octets. Il existe 4 types d'objets : blob, tree, commit et tag.

blob

C'est un ensemble d'octets qui peut être un fichier texte, une portion de code source, une image, etc.

tree

C'est comme un système de fichiers. Il peut pointer ou contenir : des objets blob et d'autres objets tree.

commit

Il contient :

  • des informations sur la personne ayant effectuée le change/check-in/commit.
  • un lien sur le tree au moment du commit
  • un lien vers le tree parent avant le commit pour pouvoir facilement annuler l'opération

tag

C'est un lien vers un objet commit. Il permet d'identifier un commit donné en lui apposant un tag.

Installation de git

Pour une installation de Git sous Windows, il est recommandé d'installer msysGit. L'installation crée un raccourci nommé Git Bash pour utiliser tous les outils fournis.
On nomme la branche principale d'un dépôt Git : master
La première chose à faire est de configurer notre nom d’utilisateur et notre email. Ils permettront d'afficher nos identifiants lors de l'affichage de la liste des modifications.git config --global user.name 'Thierry Paret' git config --global user.email thierry.paret@netapsys.fr Nous ajoutons également une option pour bénéficier de l’affichage en couleurs. git config --global color.ui true Ces informations sont stockées dans le fichier .gitconfig dans le $HOME de l'utilisateur.

Contenu du répertoire .git (unique à la racine du dépôt)

  • config/ : contient la configuration
  • objects/* : contient les objets git
  • ref/heads/* : contient les informations sur les branches locales du dépôt
  • logs/* : contient les traces
  • refs/remotes/* : contient les informations sur les branches distantes
  • index : contient les informations sur le prochain commit
  • HEAD : contient les informations sur la branche courante

Les commandes usuelles

Git comporte plus de 100 commandes mais quelques unes sont utilisées régulièrement:

  • git init : création d'un nouveau dépôt vide
  • git add : ajout d'un nouveau fichier à l’index du projet pour qu’il soit pris en compte dans le versionning
  • git commit : validation des modifications.
  • git pull : téléchargement des changements du serveur
  • git push : envoi des modifications sur le serveur
  • git status : liste des modifications non validées
  • git branch : création d'une nouvelle branche de développement
  • git merge : fusion de branches de développement
  • git diff : liste des changements sur un fichier depuis une certaine version
  • git checkout : annulation des modifications faites sur une fichier
  • git reset : annulation de toutes les modifications faites sur des fichiers
  • git revert : annulation des modifications, retour à un commit précédent

Dans les prochains articles, nous créerons nos dépôts et nous verrons comment gérer différents workflow de traitement, ainsi que les avantages par rapport à l'utilisation de SVN.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.