📝

Atelier technique : GIT

  1. Créé par Linus Torvald en 2005 pour le noyau Linux
  2. Décentralisé
  3. Basé sur Unix : tout est fichier

Atelier technique : GIT > les bases

  1. Unité : Commit = instantanée de code + hash + date + auteur
  2. Pointeur = mettre le curseur sur un commit à la fois
  3. Tag = nom sur un Commit
  4. Branche = liste de commits qui se suivent + nom. Le pointeur sera toujours mis sur le dernier commit.
  5. Le fichier = la matière manipulée

Atelier technique : GIT > avantages techniques

  • Partage de sources
  • Décentralisé : travaille à plusieurs
  • Conserver un historique des modifications
  • Gérer une application au format Semver
  • Performance : peu de latence, peu gourmand en ressources et occupation mémoire faible
  • Avoir un fonctionnement standardisé

Atelier technique : GIT > la base

Atelier technique : GIT > merge

git switch main

git merge feature/decouverte

Atelier technique : GIT > merge

git switch main

git merge feature/decouverte

Atelier technique : GIT > rebase

git switch main

git rebase feature/decouverte

Atelier technique : GIT > conflit

Proposition A Proposition B

Atelier technique : GIT > conflit avec merge

Un conflit pour 3 commits
= 1 opération de résolution

Atelier technique : GIT > conflit avec rebase

Un conflit pour 3 commits
= 3 opérations de résolution

Atelier technique : GIT > pull

Que fait la commande : git pull ?

Atelier technique : GIT > pull

git pull = git fetch + git merge
ou
git pull = git fetch + git rebase

Atelier technique : GIT > avant pull (config merge)

Atelier technique : GIT > pull (config merge)

Atelier technique : GIT > workflow

Définition Workflow: flux de travail, flux opérationnel

Intérêt :
  • Éviter les bugs
  • Éviter les conflits
  • Éviter des interactions chronophages
  • Gagner du temps et de l'assurance
  • Identifier les bugs et les résoudres

Atelier technique : GIT > workflow web

Atelier technique : GIT > workflow applicatif

Atelier technique : GIT > conseils

  • Utiliser git en ligne de commande
  • Ne pas utiliser les git rebase (sauf pour les git pull sur les branches protégées)
  • Ne jamais rien supprimer sur gitlab
  • Éviter de travailler en detach head
  • Créer son propre git.config
  • Utiliser un shell comme fish avec Starship
  • S'entrainer sur des plateformes comme https://learngitbranching.js.org
  • Ne plus jamais recloner un projet pour résoudre un soucis

Atelier technique : GIT > allez plus loin

  1. Un futur atelier sur les commandes : git add, git restore, git reset, git revert, git stash, cherry-pick, etc.
  2. Eviter les conflits en séparant les sources en petits fichiers
  3. Gestion des conflits
  4. git bisect
  5. gitlab avancés : regarder des diffs, naviguez sur un historique, faire des squash etc.
  6. La gestion de projets sous gitlab
  7. Les hooks de git
  8. La CI/CD avec gitlab
  9. git LFS : et si on stockait des fichiers avec de gros volumes ?
  10. ?

Atelier technique : GIT > The end ?


Les sources de cet atelier sont sur La Forge des Communs Numériques Éducatifs

Fait avec :