Sobes.tech
Middle

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 (main ou master) 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 rebase a été utilisé pour maintenir une histoire propre dans les branches locales avant la fusion, et git merge --no-ff pour 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>