Gestion du code source

Tags :
  • cours
  • projet
Auteur :
  • François Brucker

Comment gérer le code source d'un projet avec git et github.

La gestion du code source (Source Control Management) est bien sûr utilisée massivement en informatique, mais les méthodes et techniques mises en œuvre fonctionnent pour tout projet où l'on doit utiliser/produire des documents qui sont modifiés au cours du temps. C'est un cadeau fait par les informaticiens au monde (ne le détruisez pas comme la gestion de projet agile...).

Un des bénéfices d'une gestion des documents bien comprise est que l'on peut :

Mais surtout : ne pas avoir peur de modifier, tester et expérimenter des nouveautés.

Ces bénéfices sont incommensurables lorsque l'on travaille à plusieurs sur un projet et sont très utiles même pour un projet solo.

Dire que l'on fait de la gestion des sources ou que l'on connaît git parce qu'on se sert de github comme d'un drive est un mensonge et vous fera passer pour un rigolo.

Principes

Github

TBD voir les diff + format.

  1. git
    1. avec Github
    2. idem avec Github desktop

https://github.com/ est une interface au logiciel de gestion de sources git. Il en existe d'autres, comme https://gitlab.com/ par exemple.

L'aide de github est très bien faite, n'hésitez pas à y jeter un coup d'œil.

Création du compte github

  1. créez votre compte avec github
    • On crée ici votre compte github pro, ne mettez pas de bêtises
    • Utilisez une adresse mail pérenne (genre votre adresse pro gmail ou votre adresse ecm)
  2. modifier son profile :
    1. Allez dans la modification du profile :
      • en haut à droite de la fenêtre puis "Your profile"
      • ou https://github.com/<votre login> en remplaçant <votre login> par votre login.
    2. Il faut mettre de bonnes info car lorsque vous modifiez le code vous êtes responsable de ce que vous modifiez. Il faut donc :
      • savoir qui a modifier le code et pourvoir le retrouver
      • votre compte github est aussi votre book. Il permet de savoir ce que vous avez fait.
      • Mettez donc au moins :
        • un vrai nom
        • une vrai photo (rechargez la page pour avoir la nouvelle photo)

Utilisation de github

On va aller un peu plus loin en voyant, directement avec le site les principales fonctionnalités de git.

Vous avez vu les principales qualités d'un logiciel de gestion de sources :

Github desktop

Travailler depuis le site uniquement est très limitant. Github est le lieu où est stocké du projet, l'outil qui fait tout fonctionner est git. Avant d'utiliser la ligne de commande qui peut être intimidante, utilisant une application développée par github qui permet d'en utiliser les fonctions les plus courantes.

Il suffit d'aller sur cette page : https://desktop.github.com/ pour télécharger puis installer l'application.

On va reprendre le projet précédent pour créer son projet chez soit ainsi que l'origin en utilisant l'application desktop.

Vous avez vu les principales qualités d'un logiciel de gestion de sources :

Gérer ses sources

TBD noms : Git flow ? Github flow ? Feature branches ? Push to prod ? 4. workflow : 1. github-flow : peut avoir plein de branches features en parallel mais une seule branche develop 2. git-flow (rigide et plein de branches) https://leanpub.com/git-flow/read 3. différences https://www.youtube.com/watch?v=hG_P6IRAjNQ 4. ci-cd extrême inverse https://www.youtube.com/watch?v=v4Ijkq6Myfc : beaucoup de tests automatisé pour vérifier bien que tout peut aller vite en prod. et être corrigé. La prod est le dernier endroit ou votre code est testé, certes, mais ça ne doit pas être le seul 5. dépend du projet et on s'adapte

TBD refaire

Pour participer à un repo github/gitlab il y a quelques us et coutumes à respecter afin de permettre au mieux la relecture, l'ajout de fonctionnalités et la compréhension de chacun.

Git

TBD expliquer porcelaine/plomberie TBD un tag c'est un objet. Commit, tree ou blob. TBD worktrees et stash TBD utiliser switch et pas checkout pour passer de branches en branches (chekout pour les commits particulier: headless ?) TBD : index = staging area. TBD diff format et différents algos

Installation et configuration

Porcelaine

  • histoire ?
  1. ligne de commandes
    1. projet avec ligne de commande
    2. outils (lazygit, vscode)

Outils :

Les notions que l'on a vu précédemment suffisent pour un usage courant de la gestion des sources avec github. Si vous voulez :

Il vous faudra installer le programme git en ligne de commande.

L'installation et la configuration de git n'est pas très technique. Cela vaut le coup de de le faire ne serait-ce que pour pouvoir utiliser les magnifiques plugins de vscode.

Utilisation de git avec vscode

vscode permet d'utiliser directement les commandes git et possède de nombreux plugins permettant, par exemples :

Plomberie

TBD ajouter à la partie comment faire en vrai :

Cette partie du cours s'adresse plus particulièrement aux informaticiens voulant utiliser git en ligne de commande et/ou à ceux voulant comprendre le fonctionnement précis de git.

Histoire

TBD histoire de la gestion des sources :

TBD : à étoffer et à mettre en perspective

TBD

TBD :

biblio :