Skip to content

Git

Git

Par Nicolas Dewaele / RSSI - Esiee Paris / adminrezo.fr / Document sous licence CC BY-SA

Présentation de Git

Gitlab

Systèmes de contrôles de versions (VCS)

Les VCS sont des outils incontournables pour la gestion du code source des logiciels.

Le système le plus utilisé aujourd'hui est Git et les plateformes les plus connues sont Github et Gitlab.

Avantages du contrôle de versions

  • Avoir l'historique des versions du code
  • Isoler ses travaux dans des branches
  • Gérer les conflits de versions
  • Travailler en équipe avec une gestion des droits

Avantages du VCS décentralisé (Git, Mercurial)

  • Le dépôt peut exister en plusieurs points au même moment
  • Indépendant d'un point de défaillance
  • Travail offline possible

Utilisations variées

Du fait de ces avantages, ces outils peuvent également être utilisés dans d'autres contextes :

  • Trucs de sysadmins : etckeeper
  • Trucs de netadmins : oxidized
  • Trucs de devops : Docker, Ansible, IaaC
  • Systèmes de documentations (Readthedocs, Gitit, Gollum, Wiki.js, ...)
  • Systèmes de blog (Jekyll, Hugo, ...)
  • Intégration continue

Fonctionnement

Les commits forment des "couches"

Chaque "commit" est une surcouche du commit précédent

------- Commit N
...
------- Commit 3
------- Commit 2
------- Commit 1

Les branches forment un arbre

Chaque "branche" est dérivée d'une autre, le tout formant un arbre

o<o
| |
| o<o
| | | featureX
| |/
| o
| | develop
|/
master

Utilisation de git

Avant de développer

  1. Faire héberger un serveur Git :
  2. Gitlab CE ou EE pour les grandes structures
  3. Gitea pour les TPE
  4. Créer un dépôt Git sur le serveur
  5. Initialisez votre dépôt dans votre répertoire de développement
  6. Créer un fichier README.md explicite
  7. Ajoutez tous vos fichiers
  8. Faites un premier commit
  9. Poussez votre commit sur le dépôt

Workflow classique

Le meilleur workflow à suivre est celui que propose Git Flow.

  1. Pull ↓ avant de commencer à travailler
  2. Branch et checkout pour ne jamais travailler sur master
  3. Commit de chaque changement avec une description explicite : Add: xx, Fix: xx, Del: xx, Mod: xx
  4. Push ↑ réguliers sur le dépôt
  5. Merge ↣ des changements sur la branche master quand ils sont validés
  6. Push ↑ sur le dépôt avant de partir

Conseils pour ne pas s'embrouiller avec Git

  • Mettre des messages explicites à vos des commits
  • Travailler sur la bonne branche

Pour jouer avec Git

Pratique

  1. Prenez un projet que vous développez actuellement et suivez le tutoriel Git Immersion.
  2. Travail en équipe :
    • Créez un compte Gitlab
    • Copiez votre clé SSH sur le compte Gitlab
    • Créez un nouveau dépôt sur votre compte Gitlab
    • Utilisez ce dépôt pour votre projet
    • Poussez votre projet sur le dépôt
    • Permettez à vos collègues de travailler sur tout ou partie de votre projet
    • Lancez une PR sur le projet d'un collègue.

Des liens