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…

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

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é)

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.

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.

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.

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 :

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 :

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 :

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 :

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”

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 :

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 :

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 :

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 !!

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.

Vous avez maintenant les cartes en main pour utiliser simplement GIT !

0