Reprendre un projet existant — sur sa machine ou directement sur un serveur — repose sur quelques commandes essentielles. Ce guide va à l'essentiel : cloner rapidement, installer, lancer, puis aborder la version serveur pour déployer et mettre à jour en production.
L'objectif : passer d'« un dépôt Git disponible » à « un projet opérationnel » le plus rapidement possible, sans erreur de séquence.
1. Récupérer le projet rapidement
# Cloner le dépôt
git clone https://github.com/compte/projet.git
cd projet
# Plus rapide sur un gros dépôt : clone superficiel (1 seul niveau d'historique)
git clone --depth 1 https://github.com/compte/projet.git
# Récupérer une branche précise directement
git clone -b ma-branche --single-branch <url>
Mettre à jour un projet déjà cloné :
git pull # récupère et fusionne les derniers changements
git fetch --all # récupère tout sans fusionner (pour inspecter d'abord)
git checkout <branche> # basculer sur la bonne branche
2. Installer les dépendances
Selon la stack du projet, le fichier manifeste vous indique la commande adaptée :
# Node.js (package.json)
npm install # ou : npm ci (plus rapide et fiable en CI/prod)
# PHP (composer.json)
composer install
# Python (requirements.txt)
pip install -r requirements.txt
# Flutter / Dart (pubspec.yaml)
flutter pub get
💡 En production, privilégiez les variantes déterministes :
npm ci(respecte le lockfile),composer install --no-dev --optimize-autoloader.
3. Configurer
La plupart des projets fournissent un fichier d'exemple à copier :
cp .env.example .env # puis éditer .env (BDD, clés API, etc.)
nano .env
⚠️ Le fichier
.envcontient des secrets : il est, et doit rester, dans le.gitignore. Il ne doit jamais être versionné.
4. Lancer en local
# Node
npm run dev # ou npm start
# PHP (serveur intégré)
php -S localhost:8000 -t public
# Python
python app.py # ou : flask run / uvicorn main:app
# Flutter
flutter run
5. Version serveur (déploiement & mises à jour)
Sur un serveur, le principe reste identique, avec quelques précautions supplémentaires.
Première mise en place
# Se connecter au serveur
ssh utilisateur@mon-serveur.fr
# Cloner dans le dossier web
cd /var/www
git clone <url> monprojet
cd monprojet
# Installer en mode production
composer install --no-dev --optimize-autoloader # (exemple PHP)
cp .env.example .env && nano .env # config de prod
Authentifier le serveur auprès de Git
Pour un dépôt privé, le serveur doit disposer d'un accès. La méthode la plus propre consiste à utiliser une clé de déploiement (deploy key) en lecture seule.
# Sur le serveur : générer une clé dédiée (sans passphrase pour l'automatisation)
ssh-keygen -t ed25519 -f ~/.ssh/deploy_monprojet -N ""
# Afficher la clé publique → à ajouter dans GitHub
# Repo → Settings → Deploy keys → Add deploy key (lecture seule)
cat ~/.ssh/deploy_monprojet.pub
Mettre à jour (le déploiement au quotidien)
cd /var/www/monprojet
git pull origin main # récupère la dernière version
composer install --no-dev # met à jour les dépendances si nécessaire
# (recharger le service : php-fpm, pm2 restart, systemctl restart…)
🛟 Bonne pratique : déployez depuis une branche stable (
mainouprod), jamais depuis une branche de travail. Conservez également une copie de.envhors du dépôt (sauvegarde).
Le piège classique : les modifications locales sur le serveur
Si un fichier a été modifié directement sur le serveur, git pull peut se bloquer. Pour repartir proprement depuis la version du dépôt :
git fetch origin
git reset --hard origin/main # ⚠️ écrase les modifs locales du serveur
git clean -fd # supprime les fichiers non suivis
⚠️ Cette opération est destructrice : ne l'utilisez que si les modifications locales du serveur ne doivent pas être conservées (le serveur doit refléter le dépôt, et non l'inverse).
6. Récapitulatif express
git clone <url> && cd projet # 1. récupérer
npm ci # (ou composer install / pip install -r…) 2. installer
cp .env.example .env # 3. configurer
npm run dev # (ou la commande de lancement) 4. lancer
# Sur serveur : git pull + install + recharger le service
Récupérer un projet Git suit toujours la même logique : cloner → installer → configurer → lancer. Sur un serveur, il faut simplement ajouter l'authentification (deploy key) et la discipline d'exploitation (branche stable,
.envhors dépôt). Une fois cette méthode acquise, une mise à jour se déploie en trois commandes.