Quels modèles de travail avec Git avez-vous utilisés?
sobes.tech IA
Réponse de l'IA
-
Git-flow: Utilisé pour des projets avec un cycle de versions clairement défini. Pratique pour gérer la fixation des fonctionnalités, les corrections de bugs et la préparation des versions. Crée des branches
feature,develop,release,hotfix,master. -
GitHub flow: Appliqué pour des projets où la priorité est donnée à des versions fréquentes et petites. Modèle simple basé sur une branche principale (
mainoumaster) et des branches pour chaque fonctionnalité ou correction, qui sont fusionnées immédiatement dans la branche principale après revue. -
Développement basé sur trunk: Pratiqué pour des projets nécessitant une fréquence élevée d'intégration et de déploiement continu. Les développeurs apportent des modifications directement dans la branche principale (
trunk) ou dans des branches de courte durée, qui sont rapidement fusionnées. Élément clé — Feature Toggles.
En plus de ces modèles principaux, il a été utilisé:
-
Rebase vs Merge: Selon la situation et les accords dans l'équipe,
git rebasea été utilisé pour maintenir une histoire propre dans les branches locales avant la fusion, etgit merge --no-ffpour conserver une histoire de fusion explicite dans la branche principale.# Exemple rebase git checkout feature/nova-feature git pull --rebase origin main # Résolution des conflits, s'il y en a git push -f origin feature/nova-feature # Ou pull request pour fusionner dans main# Exemple merge --no-ff git checkout main git merge --no-ff feature/nova-feature -m "Fusionner feature nova-feature dans main" git push origin main -
Squash and Merge: Souvent utilisé lors de la fusion de branches de fonctionnalités dans la branche principale via Pull Request. Permet de combiner plusieurs commits de la branche de fonctionnalité en un seul commit propre dans la branche principale.
# Exemple de squash merge via l'interface de la plateforme Git (GitHub, GitLab) # Généralement effectué lors de la validation du Pull Request. -
Cherry-picking: Utilisé pour transférer des commits spécifiques entre branches, par exemple pour le backport de corrections de la branche principale vers la branche de release ou de staging.
# Exemple cherry-pick git checkout release/v1.2 git cherry-pick <commit_hash>