IDE
Integrated Development Environment
Éditeur de texte avec des fonctionnalités supplémentaires
Facilite l'édition et le débogage du code
Partage de configuration entre les développeurs
VCS
Version control system (Logiciel de gestion de versions)
Conserve le code source avec son historique
Facilite la collaboration
Le plus populaire: Git (Décentralisé)
Git
Les modifications sont stockées dans des commits
Chaque commit est identifié par un hash
Chaque commit a un parent
Les branches et tags sont des pointeurs vers un commit
Les branches sont des pointeurs mobiles
Réécriture de l'historique
commit --amend : modifie le dernier commit
rebase -i : modifie les x derniers commits
rebase : déplace les commits vers une référence (branche ou commit)
Écrire un historique propre et lisible avant de merge
Centralized Workflow
Proche de l'utilisation de SVN
Une seule branche : main
Tous les développeurs travaillent sur la même branche
Résolution des conflits avant de push
Feature Branch Workflow
Une nouvelle branche par fonctionnalité
Une personne par branche
Merge/Pull request sur la branche main
Code review avant le merge
Gitflow Workflow
Deux branches principales : main et develop
Une branche par fonctionnalité
Une branche par release ou hotfix
Quel workflow choisir ?
Éviter le Centralized
Feature Branch pour les petits projets (même seul)
Idéalement le Gitflow ou une simplification
Adapter le workflow selon les collaborateurs et le projet
"Rebase" Workflow
Ma propre adaptation du Gitflow
main : déployé en production
develop : déployé en pré-production
tag : v0.1.0, v1.0.0, ... sur main
feature : branche par fonctionnalité
Historique linéaire, fast-forward merge après rebase
Feature branch
Merge to develop
Deploy