à la gestion de configuration
de survie
![](https://git-scm.com/images/logo@2x.png)
Agenda
- Git
- Définition
- Concepts
- Démo
- Guidelines
- des règles utiles
- Gitlab
- Définition
- chez GLS
- Gitflow
- Définition
- Démo?
![](https://media1.giphy.com/media/DeeiPHMf1aA1bBeU5P/giphy.gif)
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.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8231746/2021-02-12_10_02_43-Git__SVN__mercurial_-_Découvrir_-_Google_Trends___Mozilla_Firefox.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8231745/2021-02-12_10_03_24-Git__SVN__mercurial_-_Découvrir_-_Google_Trends___Mozilla_Firefox.png)
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.
![](https://media2.giphy.com/media/wbcMnfHqOJX9K/giphy.gif)
Création de repository
git init [--bare]
git clone [--bare] <repo>
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232210/clipart4666000.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232219/database.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232210/clipart4666000.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232219/database.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232219/database.png)
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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232436/2021-02-12_12_10_11-Edit__Survival_Git___Mozilla_Firefox.png)
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
![](https://media0.giphy.com/media/0DYipdNqJ5n4GYATKL/giphy.gif)
- 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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232476/gitlab.png)
Github est un équivalent en ligne...
GOGS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/1590388/images/8232481/Gogs_logo.png)
GOGS déjà en place à GLS.
Gitflow
Inclus dans Git for Windows depuis la v.2.6
![](https://media0.giphy.com/media/l46C93LNM33JJ1SMw/giphy.gif)
Merci de votre attention.
Merci de votre attention.
![mic drop](https://media2.giphy.com/media/l3mZ4YKCsMxRJR3So/giphy.gif)
Survival Git
By Olivier DUPOUY
Survival Git
Configuration management
- 50