Workflows Git avancés
GitFlow
GitFlow est un modèle de branches pour la gestion des versions :
# Installation de git-flow
apt-get install git-flow # Debian/Ubuntu
brew install git-flow # macOS
# Initialisation
git flow init
# Créer une fonctionnalité
git flow feature start ma-feature
git flow feature finish ma-feature
# Créer une version
git flow release start 1.0.0
git flow release finish 1.0.0
Rebase interactif
Nettoyer l'historique des commits :
# Rebase interactif des 3 derniers commits
git rebase -i HEAD~3
# Commandes disponibles dans le rebase
# pick - garder le commit
# reword - modifier le message
# squash - fusionner avec le commit précédent
# fixup - fusionner et supprimer le message
# drop - supprimer le commit
Submodules
Gérer des dépendances Git dans votre projet :
# Ajouter un submodule
git submodule add <url> chemin/vers/sous-module
# Initialiser les submodules après clonage
git submodule init
git submodule update
# Mettre à jour tous les submodules
git submodule update --remote
Cherry-pick
Appliquer des commits spécifiques d'une branche à une autre :
# Cherry-pick d'un commit
git cherry-pick <commit-hash>
# Cherry-pick sans commit
git cherry-pick -n <commit-hash>
# Cherry-pick d'une plage de commits
git cherry-pick <commit-debut>^..<commit-fin>
Hooks Git
Automatiser des actions avec les hooks Git :
# Localisation des hooks
.git/hooks/
# Exemples de hooks courants
pre-commit # Vérifications avant commit
post-commit # Actions après commit
pre-push # Vérifications avant push
post-merge # Actions après merge