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
Payant (sauf étudiant), mais meilleur refactoring et autocomplétion
Pour des rapports interactifs ≠ développement de logiciels
Version control system (Logiciel de gestion de versions)
Conserve le code source avec son historique
Facilite la collaboration
Le plus populaire: Git (Décentralisé)
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
Un workflow est une méthode d'utilisation de Git
Plusieurs workflows existent
Proche de l'utilisation de SVN
Tous les développeurs travaillent sur la même branche
Résolution des conflits avant de push
Une nouvelle branche par fonctionnalité
Merge/Pull request sur la branche main
Code review avant le merge
Deux branches principales : main et develop
develop : en cours de développement
Une branche par fonctionnalité
Une branche par release ou hotfix
Merge dans develop et main
Similaire au Feature Branch Workflow
Fork au lieu de créer une branche
Chaque développeur a sa propre copie du dépôt
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
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