Mercredi 22 mai 2013
Vous êtes ici : Accueil > Catégories > Bureautique > GIT – Le gestionnaire de révisions de version

GIT – Le gestionnaire de révisions de version

GIT est un petit logiciel de gestion de version libre initialement créé par Linus Torvalds.
La particularité de Git repose sur le fait qu’il n’y a pas besoin de serveur centralisé pour fonctionner. Ainsi, chacun peut disposer d’un dépôt Git sur son PC, et le partager avec ses amis ou le monde entier si il le faut.

Git est un gestionnaire de versions, c’est à dire qu’il est possible de voir tous les changements effectués sur un fichier ou plusieurs fichiers.
Chaque version est commentée pour savoir ce qui a été ajouté / supprimé / modifié. On peut parler de « ChangeLog » (Voir le Glossair’O'Geek).

Découvrez comment mettre en place et utiliser GIT…

Version n° : Version du : Modifications effectuées :
1 25/01/2013 Création initiale du document
2 07/03/2013 MàJ du document – Révision générale
Objectif principal :

Apprivoiser & Utiliser GIT

Git-Logo-1788C

Git utilise un ordre d’exécution des commandes bien définit, qui est fait comme suit :

Lignes de commande
git init --> git status --> (git pull) --> git add --> git commit --> git push ^ ^ git clone___| git merge_________|

Explications :

  1. Initialisation d’un dossier pour qu’il devienne un dossier Git ;
  2. On clone (si besoin est) pour rapatrier un dossier distant ;
  3. « Check » : vérifier si il y a de mises à jour récentes sur les fichiers ;
  4. Si besoin, l’option « pull » permet de mettre à jour le dépôt & donc les fichiers ;
  5. Ajout de notre / nos fichier(s) (de la version locale des fichiers donc) ;
  6. Ecriture du « commentaire » quant aux modifications effectuées ;
  7. Puis envoi sur le serveur distant (commit + fichier(s)).

Le principe de Git est assez simple : On récupère des fichiers d’un serveur distant, on les stock sur notre PC en local, on y apporte nos modifications, on commente ce que l’on a fait, puis on envoi le tout sur le serveur.

I. Paramétrage / Personnalisation de base – GIT

1°) Identité personnelle

Par défaut, Git ne sera pas configuré pour votre propre identité. Une identité banale sera utilisée à la place, vous permettant d’utiliser le logiciel.
Nous allons donc le personnaliser un minimum pour avoir notre réelle identité à l’écran d’une part, mais aussi changer l’éditeur de texte lors de l’écriture des commit (les commentaires).

Deux lignes sont à écrire pour modifier l’identité. Nous allons changer le paramètre des e-mails d’un part, et de l’autre notre nom complet. (Naturellement, vous devez modifier les champs « julien@idealogeek.fr » & « Julien HOMMET » avec VOTRE identité)

Lignes de commande
git config --global user.email julien@idealogeek.fr git config --global user.name "Julien HOMMET"

Notez bien l’apparition de guillemets  »  » pour la variable du nom complet, et non pas pour l’adresse mail

2°) Changer l’éditeur de commentaires par défaut

Une autre étape est à effectuer pour modifier l’éditeur par défaut –> Lors des commit, les commentaires, l’éditeur de texte « Vi » sera utilisé. Il est possible d’utiliser un autre éditeur de textes si vous êtes plus habile avec un autre.

Lignes de commande
git config --global core.editor "nano"

La commande est assez explicite : Vous changer l’éditeur par « Nano » dans le core de Git, pour que la config soit répertoriée & utilisable partout.
Naturellement vous pouvez changer « Nano » par « Emacs », « Vim », ou encore « Gedit » & tout autre éditeur de textes…

II. GIT – Utilisation

1°) Initialiser un dossier & recevoir les données

Pour nos premiers essais, nous allons juste créer un dossier accueillant des fichiers que nous allons prendre d’un dossier distant. Par conséquent, il faut qu’un dossier / serveur soit déjà paramétré pour autoriser ce type de partage.

–> Un tutoriel est disponible quant à la création d’un dossier / serveur Git. [ EN CONSTRUCTION ]

Nous commençons déjà par créer un dossier, et se placer dedans.

Lignes de commande
sudo mkdir /home/<user>/Documents/depot-git cd /home/<user>/Documents/depot-git

N’oubliez pas de remplacer « <user> » par votre identifiant sous Linux. ;-)

Une fois le dossier créé, il faut l’initialiser pour qu’il puisse « se découvrir » & se configurer comment étant un dépôt Git. Ainsi, il sera possible de recevoir & d’envoyer des données à partir de ce dossier en utilisant Git, vers un autre dépôt Git.
Il faut utiliser la commande « git init » dans le dossier qui recevra les fichiers spécifiques.

Lignes de commande
git init Initialized empty Git repository in /home/<user>/Documents/depot-git

Une petite phrase accompagne la commande pour vous avertir que le dossier a bien été initialisé comme étant un « dossier Git vide », suivit du chemin du répertoire.

Le dossier initialisé, il est maintenant prêt à recevoir les fichiers. La commande pour recevoir ces fichiers en question est « git pull« , suivit des identifiants & de l’adresse du dossier distant à réceptionner.
Il existe 2 types de liens pour les dossiers distants à utiliser pour Git :

  • Avec des chemins HTTPS ; –> « https://127.0.0.1/dossier/distant/tpgit.git« 
  • Avec des connexions SSH ; –> « ssh://user@127.0.0.1/dossier/git/distant/« 

En SSH, il n’est pas nécessaire d’utiliser une adresse ayant comme extension « .git« . Vous pouvez le spécifier si vous le souhaitez, mais ce n’est pas utile.

Dans notre exemple, nous utiliserons principalement la connexion SSH, notamment par soucis de sécurité.

Le dossier étant maintenant initialisé comme un dépôt Git, il faut maintenant rapatrier les documents dans ce dossier. La commande utilisée sera donc « git pull« , suivi de l’identifiant de connexion & du serveur. Soit :

Lignes de commande
sudo git pull ssh://user@server/dossier/git/a/recupérer /home/<user>/depot-git

Git va alors rapatrier tous les documents distants du dossier « Git » distant dans notre dossier local. Selon la taille des dossiers à répertorier, le téléchargement peut prendre plus ou moins de temps.

Si vous avez une clé SSH disposant d’un mot de passe, vous allez devoir maintenant saisir ce mot de passe pour authentifier la clé, et donc continuer la connexion.

Une fois le téléchargement terminé, un message devrait apparaître :

Already Up-to-Date

Le dossier est maintenant prêt à être utilisé : Les fichiers distants sont rapatriés, bénéficiant des dernières versions révisées. Il ne reste plus qu’à apporter nos modifications !

2°) Quelques commandes / opérations à savoir…

a) Statut du serveur / dossiers & fichiers distant 

Le dossier étant maintenant en local, il est maintenant possible d’y effectuer certaines opérations dites de base ». Tout d’abord, il faut commencer par afficher le « status » du dossier, pour savoir les modifications effectuée à jusqu’à l’instant T. La commande à lancer est donc :

Ligne de commande
git status
Différentes parties sont présentes pour avoir un affichage clair & compréhensible

Différentes parties sont présentes pour avoir un affichage clair & compréhensible

En lançant la commande, 2 parties distinctes sont présentes :

  • Partie « Fichiers modifiés & ajoutés » (Zone n°1 –   » On branch Master | Changes not staged for commit » ;
    • Dans la première zone, tous les fichiers étant déjà « ajoutés », « supprimés », ou « mergés » (fusionnés), donc les fichiers déjà placés « dans la file » pour être envoyés sur le serveur.
  • Partie « Fichiers modifiés localement & en attente » (Zone n°2 – « Untracked Files »).
    • La seconde zone comporte tous les fichiers étant encore « en attente », c’est à dire les fichiers qui ne sont pas ajoutés / supprimés / mergés dans la file d’attente de Git. Cependant, ils sont peut être déjà modifiés localement.

b) Mise à jour de notre dossier local

Le statut effectué, il faut mettre à jour les fichiers qui doivent l’être ; La commande a exécuter est la suivante :

Lignes de commande
git pull

Le gestionnaire de version va alors se connecter au serveur distant, vérifier d’un côté si les fichiers ont été modifiés, et de l’autre si les fichiers locaux sont à modifier. Si des modifications doivent être effectuées, « git pull » exécutera les actions nécessaires.

c) Ajout d’un ou plusieurs fichiers à envoyer

La mise à jour effectuée, il nous faut maintenant ajouter nos fichiers locaux modifiés dans la file d’attente pour les envoyer plus tard sur le serveur.
La commande a utiliser s’intitule « git add »

Lignes de commande
git add fichier1

Il est possible d’ajouter plusieurs fichiers en même temps, en les écrivant à la suite, séparés d’un espace. La syntaxe est donc :

Lignes de commande
git pull fichier1 fichier2 fichier3

Une fois les fichiers ajoutés, il n’y aura pas d’affichage spécifique. Le terminal ne bougera pas, n’affichera pas de message ou autre.

d) Commentaire des modifications effectuées

Vous devez maintenant passer à l’étape du « commitage ». Cet étape est nécessaire, dans le cadre où vous devez écrire les modifications que vous avez effectués. On peut parler d’une « signature de modifications ».

La commande à utiliser est :

Lignes de commande
git commit

Lorsque vous entrez cette commande, votre éditeur de textes favori va alors s’ouvrir, et reprendre au début du commentaire tous ce qui est contenu dans « git status » à l’instant T présent.
Ainsi, vous vous retrouverez avec un commentaire déjà pré-formé, contenant les informations du « git status ». Un espace tout en haut vous permettra d’ajouter vos propres commentaires.

Par défaut, GIT ouvrira cet éditeur de commentaire avec votre éditeur de textes usuel. Vous pouvez modifier cette configuration en lançant la commande suivante :

Lignes de commande
git config --global core.editor "emacs"

Vous pouvez remplacer « emacs » par « Vim », « Nano », ou autre.

Lorsque votre commentaire est terminé, enregistrez-le, & fermez-le. Il sera automatiquement mit lui aussi dans la file d’attente d’envoi de fichiers.

e) Envoi des fichiers

La dernière étape est maintenant au bout de vos doigts ! Vous n’avez plus qu’à envoyer les fichiers modifiés & le commit sur le serveur distant, pour que vos collègues puissent en bénéficier !!

Lignes de commande
git push

La commande est simple, ce qui est un avantage indéniable !
Elle permet d’envoyer tout sur le serveur précédemment configuré.

2 types de messages peuvent survenir :

  • Réussite de l’envoi –> Rien à faire de plus, vous pouvez quittez le terminal
  • Echec de l’envoi –> Un message d’avertissement pourra vous dire quel a été le problème rencontrer. N’hésitez pas à utiliser le forum pour nous en parler !

Vous avez maintenant les bases pour utiliser GIT du côté utilisateur !

Envie d’aller encore plus loin ? Visualiser votre dépôt Git avec une interface graphique, grâce à Gitg !

A propos de Julien

Passionné depuis mon plus jeune âge quant au domaine informatique, j'ai décidé de partager mes connaissances sur mon blog en espérant pouvoir vous aider et vous faire découvrir les joies de l'administration système. Je touche principalement aux systèmes Windows 7 et Unix (Debian & ArchLinux), tout en ayant des bases solides dans les OS serveurs (Windows Server, Linux....) N'hésitez pas à me contacter ! :-)

- Remarques & commentaires -

Laisser un commentaire

Revenir en haut de la page