Améliorer la Collaboration en Équipe : Comment Git a Transformé le Projet de ZGenius et ses Amis

Améliorer la Collaboration en Équipe : Comment Git a Transformé le Projet de ZGenius et ses Amis

ZGenius et ses amis découvrent Git pour travailler en équipe

ZGenius et ses amis de la faculté étaient passionnés par la programmation. Un beau jour, ZGenius et ses quatre amis ont eu l'idée de créer une application pour partager les actualités de leur faculté. C'était une excellente idée, et ils voulaient absolument la réaliser.

Ils se sont donc lancés dans le développement de l'application et ont réparti les tâches entre eux. Cependant, les problèmes ont commencé dès la création du projet. Chacun créait le projet sur sa propre machine et installait ses propres dépendances, mais cette approche n'était pas viable.

Ils ont décidé qu'une personne créerait le projet sur sa machine, puis le partagerait avec les autres via une clé USB ou Google Drive. Genius a donc créé le projet.

Ils ont commencé à travailler, mais de nouveaux problèmes sont apparus :

  1. Chaque fois qu'un membre terminait sa fonctionnalité, il devait mettre le projet à jour sur une clé USB pour le partager.

  2. Quand plusieurs membres travaillaient sur un même fichier, des conflits se produisaient, et ils ne savaient pas comment les résoudre.

  3. Un jour, un membre de l'équipe a accidentellement supprimé des fichiers importants. Ils ne s'en sont aperçus qu'après huit jours, et il était impossible de revenir en arrière.

Ces problèmes s'accumulaient, ralentissant le projet. ZGenius devait trouver une solution rapidement.

La rencontre avec Tshaba et la découverte de Git

Un jour, ZGenius a rencontré Tshaba, une de ses amies développeuses. Il lui a expliqué les problèmes que son équipe rencontrait. Tshaba lui a alors parlé de Git, un outil de gestion de version.

"Qu'est-ce que Git ?", demanda ZGenius.

Tshaba lui expliqua que Git permet de :

  • Travailler en équipe sans avoir à se partager des fichiers via clé USB ou Drive.

  • Gérer facilement les conflits lorsque plusieurs personnes modifient un même fichier.

  • Suivre l'historique des modifications pour revenir à une version précédente en cas d'erreur.

  • Collaborer efficacement grâce à des branches pour que chaque membre puisse travailler sur des fonctionnalités spécifiques sans interférer avec les autres.

L’organisation avec Git et GitHub

Après cette discussion, ZGenius organisa une réunion avec son équipe pour leur expliquer cette solution. Voici comment ils ont décidé de travailler avec Git et GitHub :

Qu'est-ce que Git ?

Git est un outil de gestion de versions qui permet de suivre les modifications dans les fichiers, de collaborer efficacement en équipe, et d'éviter les conflits ou pertes de données. C’est particulièrement utile pour le travail en groupe sur des projets de programmation.


Installation de Git

  1. Téléchargement et installation :

    • Allez sur le site officiel : git-scm.com.

    • Téléchargez la version correspondant à votre système d'exploitation (Windows, macOS ou Linux).

    • Suivez les instructions d'installation.

  2. Vérification de l'installation :

    • Ouvrez un terminal ou un invite de commande.

    • Tapez :

        git --version
      
    • Si une version s’affiche, Git est correctement installé.


Configurer Git

Après l’installation, configurez votre identité :

git config --global user.name "VotreNom"
git config --global user.email "VotreEmail@example.com"

Créer un Dépôt Git : La Première Étape

Un dépôt (ou repository en anglais) est un espace de stockage où les fichiers d'un projet et leur historique de modifications sont enregistrés. C'est une structure utilisée par Git pour suivre les versions d'un projet et permettre la collaboration entre plusieurs développeurs.

Comment Créer un Dépôt ?

  1. Initialiser un dépôt dans un projet existant :

     git init
    
    • Cette commande crée un dépôt Git local dans le dossier actuel.

    • Git commence alors à suivre les modifications dans ce dossier.

  2. Vérifier que Git a été initialisé :

     ls -a
    
    • Vous verrez un dossier caché .git qui contient toutes les données du dépôt.

Ajouter des Fichiers au Staging Area

Pour que Git commence à suivre les modifications d’un fichier, vous devez l'ajouter au staging area (zone de préparation). Cela signifie que vous indiquez à Git quels fichiers ou modifications doivent être inclus dans le prochain commit

  • Ajouter un fichier spécifique :

      git add fichier.txt
    
  • Ajouter tous les fichiers :

      git add .
    
    • Cela inclut tous les fichiers modifiés ou nouveaux dans le staging area.

Enregistrer les Modifications : Le Commit

Un commit est une capture instantanée de l’état actuel des fichiers suivis par Git. Il enregistre :

  • Les modifications apportées aux fichiers.

  • Un message descriptif qui explique les changements effectués.

  • Une référence unique (hash) qui permet de l’identifier dans l’historique.

Comment Faire un Commit ?

  • Créer un commit avec un message :

      git commit -m "Description des modifications"
    

Travailler en Équipe : Les Branches

Dans Git, une branche (branch) est une version parallèle et indépendante du projet. C’est comme une piste de travail isolée où vous pouvez expérimenter, développer une nouvelle fonctionnalité ou corriger un bogue sans affecter le reste du projet.

Pourquoi Utiliser des Branches ?

  • Travailler en parallèle : Les membres d’une équipe peuvent travailler sur différentes fonctionnalités sans interférer entre eux.

  • Préserver la stabilité : La branche principale (main ou master) reste stable pendant que d’autres branches accueillent les expérimentations ou les développements.

  • Gérer les versions : Les branches permettent de tester des modifications avant de les intégrer définitivement dans le projet principal.

  • Faciliter la collaboration : Chaque membre peut développer sur sa propre branche et proposer ses modifications via une pull request.

Comment Créer et Passer à une Nouvelle Branche ?

  • Créer une branche :

      git branch nom_de_la_branche
    
  • Changer de branche :

      git checkout nom_de_la_branche
    

    Lister les Branches

    Pour voir toutes les branches de votre projet, utilisez :

      git branch
    

    La branche active sera marquée d’un astérisque (*) :

      * main
        feature-login
        feature-register
    
    • Fusionner une Branche

      Une fois le travail terminé sur une branche, vous pouvez l’intégrer (fusionner) dans une autre branche, comme la branche principale.

      • Étapes pour fusionner :

        Basculez sur la branche dans laquelle vous voulez fusionner les modifications (souvent main) :

          git checkout main
        
        • Fusionnez la branche cible :

            git merge nom_de_la_branche
          

Collaborer avec GitHub

GitHub est une plateforme où les dépôts peuvent être hébergés en ligne pour la collaboration.

Pourquoi Utiliser GitHub ?

  • Centralise le projet pour que tous les membres puissent y accéder.

  • Permet de gérer les pull requests et de discuter des modifications.

Comment Envoyer le Projet vers GitHub ?

  1. Ajouter un dépôt distant :

     git remote add origin URL_du_dépôt
    
  2. Pousser les modifications vers GitHub :

     git push -u origin branche_principale
    

Récupérer les Modifications d’un Collègue

Pour synchroniser les modifications faites par d’autres membres :

git pull origin branche_principale

Gérer les Conflits

Lorsque deux membres modifient le même fichier, Git demande de résoudre les conflits manuellement :

  1. Ouvrez le fichier marqué comme en conflit.

  2. Gardez ou modifiez les sections nécessaires.

  3. Ajoutez le fichier résolu :

     git add fichier_conflit.txt
    
  4. Créez un commit pour valider la résolution :

     git commit -m "Résolution du conflit"
    

Les Pull Requests dans GitHub

Les Pull Requests (PR) sont un outil clé pour collaborer efficacement sur un projet. Elles permettent à un développeur de proposer des modifications (ajout de fonctionnalités, correction de bugs, etc.) à un projet hébergé sur une plateforme comme GitHub, tout en offrant un espace pour discuter, revoir et valider ces modifications avant de les intégrer dans la branche principale.


Pourquoi Utiliser les Pull Requests ?

  1. Revue de Code : Les membres de l'équipe peuvent examiner le code avant son intégration.

  2. Collaboration : Les PR fournissent un espace pour commenter, poser des questions, ou suggérer des améliorations.

  3. Sécurité : Elles réduisent les risques d'intégration de code non testé ou de conflits dans la branche principale.

  4. Historique Clair : Les PR documentent les raisons et le contexte des changements.


Comment Fonctionnent les Pull Requests ?

1. Créer une Branche

Avant de proposer des changements, créez une branche pour isoler votre travail :

git checkout -b nom_de_votre_branche

2. Faire vos Modifications

Apportez vos changements dans le code, puis enregistrez-les avec des commits :

git add .
git commit -m "Description des modifications"

3. Pousser la Branche sur le Dépôt Distant

Envoyez votre branche vers GitHub :

git push origin nom_de_votre_branche

4. Ouvrir une Pull Request

  • Allez sur le dépôt GitHub.

  • Cliquez sur Pull Requests > New Pull Request.

  • Sélectionnez votre branche comme source et la branche cible (souvent main ou develop).

  • Ajoutez un titre et une description expliquant vos changements.


Cycle d'une Pull Request

  1. Revue de Code :

    • Les autres développeurs examinent le code.

    • Ils peuvent approuver ou demander des modifications via des commentaires.

  2. Modification du Code : Si des changements sont demandés :

    • Modifiez votre code localement.

    • Faites un nouveau commit et poussez la branche :

        git push origin nom_de_votre_branche
      
  3. Tests Automatiques : Si le projet utilise un système d'intégration continue (CI), les tests s'exécutent automatiquement pour valider les modifications.

  4. Fusion (Merge) : Une fois la PR approuvée, elle est fusionnée dans la branche cible via l'interface GitHub.


Les Options de Fusion

  • Merge Commit : Ajoute un commit de fusion qui combine les modifications.

  • Squash and Merge : Combine tous les commits de la PR en un seul commit.

  • Rebase and Merge : Applique les commits de la PR sur la branche cible, sans créer de commit de fusion.


Avantages des Pull Requests pour ZGenius et son Équipe

  1. Collaboration Centralisée : Tous les membres peuvent revoir le code sans avoir à le partager via clé USB ou Drive.

  2. Résolution de Conflits : Les conflits peuvent être identifiés et résolus dans la PR avant d'intégrer le code.

  3. Meilleure Qualité de Code : Les discussions et revues permettent de garantir que le code est propre, testé et aligné avec les standards de l'équipe.


Exemple pour ZGenius

1. Création de la Branche

ZGenius travaille sur une nouvelle fonctionnalité :

git checkout -b feature-ajout-actualites

2. Modifications et Commit

Il ajoute du code pour afficher les actualités de la faculté :

git add .
git commit -m "Ajout de la fonctionnalité actualités"

3. Push de la Branche

Il pousse la branche sur GitHub :

git push origin feature-ajout-actualites

4. Pull Request

Sur GitHub, il crée une PR pour demander une revue de code. Ses amis examinent la PR, la testent, et ajoutent des commentaires pour améliorer le code.

5. Fusion

Une fois la PR approuvée, ils fusionnent la branche dans main, et le projet est mis à jour avec la nouvelle fonctionnalité.


Conclusion

Les Pull Requests sont essentielles pour travailler en équipe efficacement avec GitHub. Elles permettent à ZGenius et son équipe de collaborer de manière structurée, de détecter et résoudre les problèmes rapidement, et de garantir la qualité du projet.


Conclusion

Avec Git et GitHub, ZGenius et son équipe ont pu :

  • Travailler en parallèle sans conflits.

  • Suivre les modifications et revenir à une version précédente en cas de problème.

  • Collaborer efficacement grâce aux branches et aux pull requests.

Leur projet a rapidement pris de l’ampleur, et ils ont enfin réalisé leur rêve !