Git - GitLab

Alban Vidal

19 Avril 2019

Logiciel de gestion de versions

  • VCS en anglais (version control system)
  • Permettant de stocker un ensemble de fichiers
  • Conserve la chronologie de toutes les modifications

VCS - Exemples

Quelques exemples projets utilisant des VCS

  • CVS - OpenBSD
  • SVN (Subversion) - Apache, Redmine
  • Mercurial - Mozilla, Python, OpenOffice.org
  • Bazaar - Ubuntu, MySQL, Inkscape
  • Git - Noyau Linux, Debian, VLC, Android, Gnome, Qt

CVS

  • CVS (Concurrent Versions System)
  • À été largement utilisé par les projets de logiciels libres
  • Création - 1990
  • Dernière version - Mai 2008

Subversion (SVN)

  • À été conçu pour remplacer CVS
  • Mêmes concepts que CVS
  • Création - 2000
  • Dernière version - Janvier 2019

Mercurial, Bazaar et Git

  • Se valent globalement
  • Récents et puissants
  • Chacun a des avantages et des défauts

Bazaar (bzr)

  • Création - Mars 2005
  • Dernière version - Février 2016

Git

  • Créé par Linus Torvalds (auteur du noyau Linux)
  • Création - Avril 2005
  • Dernière version - Février 2019

Forges Web

Système de gestion de développement colaboratif

Forges web d’hébergement Git :

GitHub

  • plus de 14 millions d’utilisateurs
  • plus de 35 millions de dépôts de projets
  • plus grand hébergeur de code source au monde
  • racheté en 2018 par Microsoft pour 7,5 milliards de dollars

GitLab

À l’origine, GitLab était un logiciel libre.

Ensuite scindé en deux versions :

  • GitLab CE (Community Edition)
  • GitLab EE (Enterprise Edition)

GitLab CE peut donc être installé pour faire de l’auto-hergement

(notes)

FramaGit

  • Forge logicielle de Framasoft
  • Reposant sur le logiciel Gitlab
  • Ouverte à tous
  • Limite de 42 projets par personne
  • Les projets peuvent être publics ou privés

Démo time !

LAB de démo

  • labadm (poste de travail / admin)
  • labsrv1 (serveur 1)
  • labsrv2 (serveur 2)

Un nginx est devant srv1 et srv2 en loadbalencer

Installation des paquets

Présentation GitLab

  • Interface Web
  • Groupes et sous-groupes
  • Projets

Clé SSH d’admin

Création d’une clé au format ed25519 contenant :

  • Le nom d’utilisateur
  • Le nom d’hôte
  • La date

Ajout clé SSH dans GitLab

Pour faciliter l’authentification, nous ajoutons une clé SSH dans le profile de l’utilisateur

Settings => SSH Keys

Y ajouter la clé précédemment générée dans le conteneur labadm

Création de deux projets

Plateforme utilisé - Framagit

  • demo-conf (vHosts apache2)
  • demo-www (sites web)

Configuration Git - Admin

Définition nom et adresse de courriel

Configuration Git - srv*

Définition nom et adresse de courriel

Clône des des dépôts - Admin

# Préparation répertoire git
mkdir /srv/git

# En SSH
git clone git@framagit.org:alban.vidal/demo-conf.git /srv/git/demo-conf
git clone git@framagit.org:alban.vidal/demo-www.git /srv/git/demo-www

ls -l /srv/git

Clône des des dépôts

Sur srv1 et srv2

Sans clé de déploiement nous ne pourrons pas clôner en SSH

Création des vHosts

Depuis labadm

Envoie dans serveur Git (Conf)

Depuis labadm

Ajout des fichiers Web

Depuis labadm

Envoie dans serveur Git (Web)

Depuis labadm

Récupération des données

Sur srv1 et srv2

Créations de liens

Sur srv1 et srv2

Activation sites dans apache

Sur srv1 et srv2

Modification d’un fichier

Retour sur le ct labadm

Récupération de la modification

Sur srv1 et srv2

Annulation d’une modification locale

Retour sur le ct labadm

Quelques commandes supplémentaires

Retour sur l’interface GitLab

  • Voir les documents
  • Voir les dommits

Notes

Penser à TOUJOURS faire un git pull avant de faire un commit

Quelques notes perso

  • GIT annulation commit
  • GIT diff patch et email
  • GIT options de clone
  • GIT synchro d un fork

Format Markdown

Liens

Liens - suite

FIN

Présentation au format reveal

Paquets requis

Présentation au format reveal (2)

Téléchargement de reveal.js et présentation au format MD

Compilation

Compiler au format HTML

Compiler au format HTML (tout en un)

Compiler au format PDF