Je pourrais faire une formation entière consacrée à la richesse de git et des nombreux systèmes de gestion de versions de code source et de documentation. C'est un sujet qui n'entre pas facilement dans le cadre de la cybersécurité, mais je tenais à te le partager, parce que c'est un outil de sauvegarde et d'intégrité des données à ne pas négliger.
C'est quoi git ? C'est un logiciel et une méthode de travail inventés par Linus Torvalds, le créateur de Linux. Il sert à créer des projets de développement logiciel complexe de manière distribuée (en télétravail, si on veut simplifier) et asynchrone (c'est à dire que les gens n'ont pas besoin de communiquer en direct pour partager leur travail).
Le protocole git permet de gérer des versions de fichiers de manière décentralisée, en utilisant différents mécanismes, dont la synchronisation et les branches. Je t'ai déjà présenté la synchronisation avec rsync et aussi avec les différents systèmes de partage de fichiers infonuagique. Ici, rien d'automatisé, on contrôle toutes les opérations manuellement pour limiter les erreurs.
Nous allons commencer par installer un logiciel d'édition de texte, Visual Studio Code, puis le client git sur notre ordinateur, puis je vais te montrer un exemple d'utilisation et de partage de projet avec un serveur de gestion de projets basé sur git, GitLab.
J'utilise ma propre instance GitLab, mais tu peux aussi te créer un compte gratuit sur le service GitLab en ligne.
(Note: depuis la rédaction de ce contenu, je suis passé à Forgejo, mais l'essentiel de cet article ne change pas)
Tu peux aussi utiliser le service populaire GitHub, qui appartient à Microsoft, ainsi que plusieurs autres plateformes similaires tel que Codeberg ou autohéberger ta propre instance de GitLab, Gitea ou Forgejo.
🌘 Installer Visual Studio Code
Visual Studio Code est un logiciel d'édition de code qui s'installe de manière assez traditionnelle. On télécharge depuis le site officiel et on suit les instructions pour l'installer.
Il n'y a rien de particulier à configurer pour l'instant
- Télécharge depuis le site officiel: https://code.visualstudio.com/
- Installe avec le fichier téléchargé
- Ouvre l'application
Il y a aussi une version libre disponible, VSCodium, qui a parfois certain soucis d'intégration avec la boutique d'extensions. Tu peux l'installer à la place si tu le souhaites. C'est presque identique à Visual Studio Code sauf qu'ils ont enlevé tout le "branding" de Microsoft et quelques outils de suivi d'utilisation.
Voici le site de VSCodium: https://vscodium.com/
Nous allons voir comment installer des extensions dans les prochaines pages. Cet éditeur supporte aussi Antidote si tu l'utilises pour corriger tes textes. Il fonctionne très bien dans ce logiciel, contrairement à Google Docs où c'est un peu la misère. À considérer !
🌘 Installer Git for Windows
Clique sur l'icone de gestion de code dans Visual Studio Code.
Ça ressemble à trois cercles qui forment un embranchement
Clique ensuite sur Download Git for Windows
Clique sur Click here to download
Choisis les options par défaut, sauf pour ces captures:
- Select components: Coche (New!) Add a Git Bash Profile to Windows Terminal
Comme éditeur par défaut, choisis Visual Studio Code
Choisis l'option Override the default branch for new repositories
(petite explication: dans les dernière années, la communauté du logiciel libre a entrepris d'éliminer le langage raciste et sexiste dans le monde du développement logiciel. C'est un énorme problème et un des premiers pas a été de ne plus utiliser le terme master/slave pour définir les répertoire principaux et secondaires, mais plutôt main/development.)
Enfin, lorsque l'installation est terminée, reviens dans Visual Studio Code et clique sur Reload
🌘 Installer Homebrew et git sur MacOS
- Il faudra d’abord installer Homebrew si tu ne l’as pas déjà. C’est un outil en ligne de commande qui permet d’installer une tonne de logiciels facilement. Attention, il y a beaucoup de faux sites qui font installer une version contaminée de Homebrew, le seul vrai site est
brew.sh
. - Installe git avec la ligne suivante dans le terminal:
brew install git
🌘 Installer git sur Linux
Git fait partie de ta distribution Linux
- Sur Ubuntu et Debian:
sudo apt-get install git
- Sur Arch Linux:
pacman -Syu git
- Sur Fedora:
sudo dnf install git
GitLab (et git en général) est assez ennuyant à expliquer. Alors, pour te faire apprécier l'outil, je vais te proposer un parcours pratique !
Je t'invite à visiter l'adresse suivante: https://git.jevalide.ca/partage/mission-cybersecurite-git-demo
(Depuis la création de ce contenu, je suis migré sur la plateforme Forgejo, mais pour les fins de cet article, tu peux considérer que c'est équivalent à GitLab, mais en beaucoup plus léger)
Tu vas arriver directement dans un projet git que j'ai partagé publiquement. C'est à dire qu'il est accessible à tous.
Sur cette page, tu peux voir différentes sections.
1. Les fichiers du projet peuvent être navigués comme sur un stockage infonuagique. C'est un répertoire de fichiers traditionnel autant sur l'ordinateur sur sur le site GitLab
2. Tous les fichiers sont situés sur une branche, qui est un ensemble de modifications autonomes. Les changements sur une branche ne sont pas reflétés sur la branche principale sans qu'une opération additionnelle soit effectuée, la merge request. Dans un projet logiciel, le rôle d'accepter les merge request revient à l'intégration.
3. Un projet peut être cloné sur son ordinateur pour en créer sa propre version.
Je vais maintenant te présenter plus en détail les branches en allant dans Repository, puis Graph
Tu peux voir qu'il y a une branche nommée main, puis une branche nommée version-modifiee. Lorsque nous allons cloner le projet, toutes les branches vont aussi être clonées. C'est alors important de choisir la bonne avant de commencer à travailler.
Clonons maintenant le projet (voir le bouton 3 ci-dessus). Clique sur Visual Studio Code (HTTPS)
Il se peut que tu aie un avertissement du navigateur pour ouvrir le projet avec Visual Studio Code. Il devrait ressembler à ceci. Clique sur Toujours autoriser, puis sur Ouvrir
Le projet va ouvrir dans Visual Studio Code. Si ça ne fonctionne pas, tu peux copier le lien HTTPS, puis l'ouvrir dans Visual Studio Code manuellement.
Installe le plugin Français si c'est demandé, puis redémarre. Le projet va s'ouvrir dans l'éditeur.
Nous allons maintenant aller à la branche version-modifiée. Clique sur l'icône de la gestion de versions, puis sur "main" en bas à gauche.
Tu vas pouvoir choisir la branche version-modifiee dans le menu en haut au centre
Si tu clique maintenant sur la vue des fichiers, puis sur le fichier texte.md, tu devrais voir la version modifiée du fichier. Cette version coexiste avec la version originale de la version main, qui ne sera pas modifiée, même si tu modifie la version sur la branche version-modifiee.
C'est une façon très intéressante de voir toutes les versions de travail et l'évolution d'un projet, et pas seulement pour le code informatique !
Si tu veux sauvegarder les versions de travail de tes fichiers, tu peux le faire sur la branche courante, ou en créant une nouvelle branche. L'opération de sauvegarde sur une branche se nomme le "commit".
Ensuite, si tu veux "pousser" les modifcations sur le serveur GitLab, tu utilises la commande "push". Cependant, ici, comme c'est un projet public, tu ne seras pas autorisé.e à le faire !
Il faut me demander pour que je puisses te créer un compte sur la plateforme ! Juste à m'écrire sur le forum ou par courriel et je vais t'arranger ça !
Voici les 4 étapes pour ajouter des modifications sur le serveur:
- Sélectionner l'onglet de gestion de versions
- Choisir le fichier modifié et le visualiser
- Écrire un commentaire pour décrire les modifications. Ce commentaire va être partagé à tous les utilisateurs qui ont accès au projet. Ici, c'est le public.
- Faire une validation et un envoi (push)
GitLab a aussi son propre système de gestion de permissions basé sur les parties prenantes, incluant des rôles, des groupes, des utilisateurs et des permissions spéciales pour les robots.
Voici l'interface pour ajouter un utilisateur.
GitLab fonctionne avec des groupes et des sous-groupes, dans lesquels on retrouve des membres qui peuvent avoir un rôle différent dans chaque groupe. La notion d'invité anonyme d'existe pas. Tout membre est soit utilisateur, soit anonyme et membre du public.
(Dans Forgejo, on appelle les groupes des Organisations, il n'y a qu'un seul niveau)
Git est un système complexe. Les interfaces comme GitLab rendent ça plus simple, mais ça demeure qu'il faut un certain temps pour l'apprivoiser.
Je voulais t'introduire à son utilisation en tant qu'outil additionnel qu'il est possible d'intégrer à ton coffre à outils afin d'assurer en premier lieu l'intégrité de tes projets.
Si tu aimerais aller plus loin, rejoins-moi sur mon forum de discussion Garde ça secret !.