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.