à la gestion de configuration

de survie

Agenda

  • Git
    • Définition
    • Concepts
    • Démo
  • Guidelines
    • des règles utiles
  • Gitlab
    • Définition
    • chez GLS
  • Gitflow
    • Définition
    • Démo?

Git - définition

Git est LE système de gestion de configuration distribué.

 

Créé par Linus TORVALDS en 2005 pour la gestion du noyau Linux.

 

12 millions d'utilisateurs, tous domaines du logiciel confondus.

Concepts

  • Repository
    • local vs remote
    • working dir vs "bare"
  • Working directory
    • .gitignore
  • Commits
    • blobs, trees, merge
  • Branches
    • tags, HEAD
  • Index
  • Stash

Beaucoup de commandes

git init​: crée un nouveau dépôt ;
git clone​: clone un dépôt distant ;
git add​: ajoute de nouveaux blobs dans l'index pour chaque fichier modifié ;
git commit​: créer un nouvel objet commit depuis l'index;
git branch​: liste les branches ;
git merge​: fusionne une branche dans une autre ;
git rebase​: déplace les commits (c'est mal) ;
git push​: publie les nouvelles révisions sur le remote ;
git pull​: fetch + merge ;
git stash​: stocke de côté un état non commité afin d’effectuer d’autres tâches.
git diff: liste les différences avec un autre commit
git checkout: permet d’obtenir des fichiers de la gestion de conf
git switch: changement de banche
git remote: gestion des dépôts distants…
git reset: nettoyage de l’espace de travail, de l’index et du dépôt.

Création de repository

git init [--bare]
git clone [--bare] <repo>

Création de commits

git add <my-files>
git commit -m "my interesting commit message"

Ajout des modifications à l'index

Création de l'objet commit

git commit --all -m "my interesting commit message"

Tout-en-un

Mise à jour de son repo

git fetch [remote]
git merge <remote/branch>

récupération des commits du repo distant

création d'un commit avec 2 parents +déplacement de la branche courante.

git pull

Tout-en-un

Publication de modifs

git push [remote]

envoi de commits dans un repo remote

avec ou sans "pull request"

(extended) VSCode

Guidelines

  • Git est un outil : pas une méthode
  • On ne gère en conf QUE ce que l'on produit directement.
    • pas de librairies
    • pas de code généré
    • ... mais les binaires sont acceptés (images, ...)
  • Dans l'idéal: une gestion de conf = un projet
    • specifications + code + tests
  • Une personne se charge de l'intégration.

Le retour du serveur

  • gestion des dépôts Git
  • gestion les utilisateurs et leurs droits
  • connexion à un annuaire LDAP
  • gestion l’accès par branche
  • examens de code (code reviews)
  • outil de rapport de bug
  • création de wiki
  • Tout pareil
  • Intégration continue

Github est un équivalent en ligne...

GOGS

GOGS déjà en place à GLS.

Gitflow

Inclus dans Git for Windows depuis la v.2.6

Merci de votre attention.

Merci de votre attention.

mic drop

Survival Git

By Olivier DUPOUY

Survival Git

Configuration management

  • 65