10. Git local vers Git collaboratif#
Jusqu'à présent, votre connaissance de Git s'est construite dans l'environnement de votre machine locale. Vous avez appris à versioner votre code, et à créer des branches. Cette fondation constitue la base du développement professionnel, mais elle ne représente qu'une facette de l'écosystème Git.
En effet, le développement avec Git repose sur la collaboration d'équipe et la synchronisation distribuée. Dans un environnement professionnel, votre code doit être partagé, révisé, intégré et déployé en coordination avec vos collègues.
L'évolution vers Git collaboratif introduit une dimension stratégique : la gestion des dépôts distants. Les plateformes cloud (GitHub, GitLab, Azure Repos) ne sont pas de simples espaces de stockage, mais des écosystèmes complets qui orchestrent les workflows de développement, automatisent les processus de validation et facilitent la revue de code. Cette transition implique de maîtriser de nouveaux concepts et pratiques : la synchronisation bidirectionnelle entre votre environnement local et les serveurs distants, la gestion des branches partagées et des conflits de fusion, les workflows de revue de code via les pull requests et les pipelines automatisés CI/CD.
Cette section vous préparera aux exigences du développement professionnel, où la capacité à travailler en équipe de manière fluide et organisée devient aussi importante que la maîtrise technique individuelle de Git.
Architecture Git : Client vs Serveur
Git fonctionne selon un modèle distribué qui combine autonomie locale et
collaboration centralisée.
Sur votre machine, l'installation Git opère comme un client autonome complet,
archivant l'historique
intégral de votre projet dans le répertoire caché .git
qui encapsule
toutes les
métadonnées de versionnement, chaque utilisateur possède ainsi une réplique complète
et fonctionnelle
du dépôt sur son poste. Parallèlement, les plateformes de dépôts distants (GitHub,
Azure Repos, entre
autres) agissent comme des serveurs centralisés servant de "source de vérité"
commune, orchestrant la
synchronisation entre tous les clients Git de l'équipe.
Git permet à chaque développeur de travailler de manière autonome avec l'historique complet, puis de se synchroniser avec le serveur distant uniquement quand nécessaire, offrant ainsi flexibilité, performance et résilience dans le workflow collaboratif.
Ainsi, un dépôt distant hébergé dans le cloud constitue le pilier du développement collaboratif. Cette infrastructure centralisée transforme la manière dont les équipes travaillent ensemble en établissant une source de vérité unique, accessible à tous les membres de l'équipe.
Au-delà de la collaboration, le dépôt distant offre une sécurité renforcée grâce à la sauvegarde automatique et continue de l'ensemble du code source. Cette protection contre la perte de données locales (panne matérielle, erreur humaine ou tout autre incident) assure la pérennité du travail de développement.
Gestion de version centralisée
Le paysage des plateformes de dépôts distants est dominé par plusieurs acteurs clés, chacun proposant des spécificités adaptées à différents contextes organisationnels. GitHub s'impose comme le leader incontesté du marché, fort de son rachat par Microsoft et de son écosystème open source de référence qui attire des millions de développeurs à travers le monde. Cette plateforme a révolutionné la manière dont les projets open source sont développés et partagés, créant une véritable communauté mondiale de développeurs.
GitLab propose une alternative complète particulièrement séduisante pour les entreprises cherchant une solution tout-en-un. Sa force réside dans l'intégration native de fonctionnalités DevOps avancées, permettant de gérer l'intégralité du cycle de vie des applications depuis une interface unique, de la planification jusqu'au déploiement en production.
Bitbucket, développé par Atlassian, est utilisé dans les environnements d'entreprise grâce à sa synergie avec l'écosystème Atlassian. Cette intégration avec JIRA pour la gestion de projet et Confluence pour la documentation technique crée un environnement de travail optimisé pour les équipes déjà investies dans ces outils.
Azure Repos complète cette offre en tant que plateforme d'entreprise intégrée à Azure DevOps, offrant une solution native pour les organisations déjà engagées dans l'écosystème Microsoft Azure. Cette intégration permet une continuité entre le développement, l'intégration continue et le déploiement dans l'infrastructure cloud Microsoft.
Dans notre environnement professionnel, Azure Repos constitue l’infrastructure Git centralisée sur laquelle repose notre gestion de code. Intégré à l’écosystème Azure DevOps, il permet de regrouper, au sein d’un même espace, le code source, les pipelines CI/CD et les outils de collaboration. Cette solution offre plusieurs avantages stratégiques. Elle s’intègre avec les outils Microsoft déjà déployés dans l’entreprise, simplifie la gestion des permissions grâce à une administration centralisée, et permet l’automatisation des processus de développement via des pipelines DevOps intégrés.
Dans la section suivante, nous verrons comment connecter un dépôt Git local à Azure Repos, et comment maîtriser les workflows collaboratifs essentiels pour travailler efficacement au sein d’une équipe.
Mise en pratique : Connecter local et distant Azure Repos
Dans un environnement de développement collaboratif, comprendre comment connecter et synchroniser un dépôt local avec une plateforme Git distante est essentiel. Dans notre cas, Azure Repos constitue le point central de gestion du code source, intégrant l’ensemble des outils Azure DevOps tels que les pipelines CI/CD, le suivi des tâches et les permissions d’équipe (via service principals).
Cette section présente les différents workflows Git dans Azure Repos, depuis le clonage d’un projet existant, en passant par la création d’un nouveau dépôt, jusqu’à la migration d’un projet local déjà en production. Chaque scénario est accompagné d’exemples de commandes Git commentées, pour permettre une prise en main rapide.
Nous aborderons également des notions plus avancées telles que la gestion multi-remote, utile pour synchroniser un même projet entre plusieurs plateformes (Azure Repos, GitHub…), ainsi que le fonctionnement des pull requests, élément important du travail collaboratif et de la revue de code.
Scénario 1 : Cloner un projet existant
Contexte : Vous rejoignez un projet en cours ou souhaitez utiliser un template (repos) d'équipe déjà hébergé sur Azure Repos.
git clone https://organisation@dev.azure.com/org/projet/_git/nom-du-depot
Ce que fait cette commande :
- Télécharge l'intégralité du dépôt distant (historique, branches, tags)
- Crée automatiquement un dossier local portant le nom du dépôt
- Crée automatiquement un remote nommé « origin ».
Après le clonage :
cd nom-du-depot # Entrer dans le dossier projet
git status # Vérifier l'état du dépôt
git branch -a # Afficher toutes les branches (locales et distantes)
Scénario 2 : Créer un nouveau projet de zéro
Contexte : Démarrage d'un nouveau projet que vous souhaitez héberger sur Azure Repos.
Étape 1 : Création du dépôt sur Azure Repos
- Interface Azure DevOps :
- Connexion à Azure DevOps (dev.azure.com)
- Navigation vers votre organisation/projet
- Sélection "Repos" dans le menu latéral gauche
- Clic sur "New repository" ou "Nouveau dépôt"
- Configuration : Nom du dépôt, visibilité, options d'initialisation
- Création : Validation et génération de l'URL de connexion
- Étape 2 : Initialisation locale et première synchronisation
# Création de l'environnement projet
mkdir mon-nouveau-projet
cd mon-nouveau-projet
# Initialisation Git
git init
# Création du fichier de documentation initial
echo "# Mon Nouveau Projet" > README.md
echo "Description du projet et instructions d'installation" >> README.md
# Premier commit local
git add README.md
git commit -m "docs: initialisation du projet avec README"
(optionnel) Étape 3 : Configuration de la branche principale
git branch -M main
Étape 4 : Connexion au dépôt distant
git remote add origin https://organisation@dev.azure.com/org/projet/_git/nom-du-depot
Étape 5 : Synchronisation initiale
git push -u origin main
Scénario 3 : Migrer un projet existant vers Azure Repos
Contexte : Vous disposez d'un projet Git local fonctionnel que vous souhaitez héberger sur Azure Repos.
- Prérequis : Création du dépôt vide sur Azure Repos (sans README, .gitignore)
- Depuis votre dossier projet existant :
cd mon-projet-existant
git branch -M main
git remote add origin https://organisation@dev.azure.com/org/projet/_git/nom-du-depot
git remote -v
git push -u origin main
git push origin --all
git push origin --tags
Fonctionnalité avancée : Gestion multi-remote
git remote -v
git remote add github https://github.com/username/repository.git
git push origin main # Vers Azure Repos
git push github main # Vers GitHub