Numérique et Sciences Informatiques > Projets et Démarche de Projet Informatique > Travail Collaboratif et Outils > Gestion de versions (Git - notions)

Git et Collaboration : Travailler en équipe avec Git

Ce guide explique comment utiliser Git pour collaborer efficacement avec d'autres développeurs. Il couvre les flux de travail collaboratifs, les pull requests, et la gestion des conflits en équipe. Adapté aux élèves de lycée en NSI.

Les Dépôts Distants

Un dépôt distant est une version de votre projet qui est hébergée sur un serveur, comme GitHub, GitLab, ou Bitbucket. Il sert de point central pour la collaboration entre les membres de l'équipe. Chacun clone le dépôt sur son propre ordinateur (dépôt local), y apporte des modifications, puis les envoie (push) vers le dépôt distant. De plus, il peut télécharger (pull) les modifications des autres.

Cloner un Dépôt Distant

Pour commencer à travailler sur un projet collaboratif, vous devez d'abord cloner le dépôt distant sur votre machine locale. Utilisez la commande git clone [URL_du_dépôt]. Par exemple : git clone https://github.com/mon_utilisateur/mon_projet.git. Cela créera une copie du dépôt sur votre ordinateur.

Le Flux de Travail Collaboratif

Un flux de travail collaboratif typique avec Git comprend les étapes suivantes :

  1. Cloner le dépôt : git clone [URL_du_dépôt]
  2. Créer une branche locale : git checkout -b ma_nouvelle_fonctionnalite
  3. Effectuer des modifications, les ajouter et les commiter : git add ., git commit -m "Ajout d'une nouvelle fonctionnalité"
  4. Pousser la branche sur le dépôt distant : git push origin ma_nouvelle_fonctionnalite
  5. Créer une 'Pull Request' (Demande de Tirage) : Sur l'interface web du dépôt (GitHub, GitLab...), demandez à ce que votre branche soit fusionnée dans la branche principale (souvent 'main' ou 'master').
  6. Révision et Approbation : Les autres membres de l'équipe examinent votre code, proposent des modifications et, une fois approuvé, la pull request est fusionnée.

Les Pull Requests (Demandes de Tirage)

Les pull requests (PRs) sont un mécanisme central pour la collaboration avec Git. Elles permettent :

  • De demander à d'autres de revoir votre code avant de l'intégrer au projet principal.
  • De discuter des modifications proposées, de poser des questions et de suggérer des améliorations.
  • D'assurer la qualité du code et de minimiser les erreurs.
Après avoir poussé votre branche sur le dépôt distant, vous créez une pull request via l'interface web du dépôt (GitHub, GitLab...). Les membres de l'équipe peuvent alors commenter, proposer des modifications et finalement approuver la PR, qui sera ensuite fusionnée dans la branche principale.

Résoudre les Conflits en Équipe

Lorsque plusieurs personnes modifient le même fichier, des conflits peuvent survenir lors de la fusion des branches. Git vous indiquera les fichiers en conflit. Pour les résoudre :

  1. Récupérer la dernière version de la branche principale : git pull origin main
  2. Ouvrir le(s) fichier(s) en conflit : Vous verrez des marqueurs indiquant les zones de conflit (<<<<<<< HEAD, =======, >>>>>>>).
  3. Modifier le fichier : Choisissez quelles modifications conserver, supprimez les marqueurs de conflit.
  4. Ajouter et commiter les modifications : git add ., git commit -m "Résolution des conflits"
  5. Pousser les modifications sur le dépôt distant : git push origin ma_branche
Il est important de communiquer avec votre équipe pour comprendre l'origine des conflits et les résoudre de manière collaborative.

Utilisation de GitHub, GitLab ou Bitbucket

Ces plateformes (GitHub, GitLab, Bitbucket) fournissent une interface web pour gérer vos dépôts Git. Elles offrent des fonctionnalités telles que :

  • Hébergement de dépôts : Stockage de vos projets en ligne.
  • Gestion des utilisateurs : Contrôle d'accès aux dépôts.
  • Pull Requests : Outil de collaboration pour la révision du code.
  • Suivi des problèmes (Issues) : Gestion des bugs et des nouvelles fonctionnalités.
  • Intégration continue (CI) : Automatisation des tests et du déploiement.
Familiarisez-vous avec l'interface web de la plateforme que vous utilisez pour tirer le meilleur parti de la collaboration avec Git.

Ce qu'il faut retenir

  • Les dépôts distants sont essentiels pour la collaboration.
  • Cloner le dépôt : git clone [URL]
  • Le flux de travail collaboratif implique des branches, des commits, des pushes et des pull requests.
  • Les pull requests permettent la révision du code et la discussion des modifications.
  • La résolution des conflits nécessite de récupérer la dernière version, d'éditer les fichiers en conflit et de commiter les changements.
  • GitHub, GitLab et Bitbucket facilitent la gestion des dépôts et la collaboration.

FAQ

  • Que faire si j'ai commité des modifications directement sur la branche principale ?

    Il est préférable d'éviter de commiter directement sur la branche principale. Si cela arrive, vous pouvez créer une nouvelle branche à partir de l'état actuel de la branche principale, y déplacer vos commits avec git cherry-pick (ou git rebase si vous êtes à l'aise avec cette commande), puis créer une pull request pour fusionner cette nouvelle branche dans la branche principale.
  • Comment annuler un push sur le dépôt distant ?

    Annuler un push public est fortement déconseillé car cela peut perturber le travail des autres membres de l'équipe. Si vous devez vraiment le faire, utilisez git revert pour créer un nouveau commit qui annule les modifications introduites par le commit que vous souhaitez annuler, puis poussez ce nouveau commit. Cela préserve l'historique du dépôt et évite les problèmes potentiels.
  • Comment puis-je voir les modifications que j'ai apportées par rapport à la branche principale ?

    Vous pouvez utiliser la commande git diff main...ma_branche (remplacez 'ma_branche' par le nom de votre branche). Cela affichera les différences entre votre branche et la branche principale.