Git et Django : publier son projet sur GitHub et le récupérer sur un autre poste
- Installer Git (Windows, Linux, macOS)
- Configurer son identité Git
- Créer le .gitignore pour un projet Django
- Initialiser le dépôt local et faire le premier commit
- Créer le dépôt distant sur GitHub
- Lier le dépôt local au dépôt distant et pousser
- Le workflow quotidien : add → commit → push
- Récupérer le projet sur un autre poste (clone + setup)
- Commandes Git essentielles (cheatsheet)
- Conclusion et prochaines étapes
1. Installer Git
Git s'installe différemment selon l'OS. Choisissez le vôtre ci-dessous, puis vérifiez l'installation avec git --version dans votre terminal.
Windows
Téléchargez l'installateur officiel sur git-scm.com. Lors de l'installation, conservez les options par défaut — elles configurent automatiquement Git Bash et l'intégration dans l'explorateur Windows.
Après installation, ouvrez Git Bash (ou PowerShell) et vérifiez :
git --version
# git version 2.47.x.windows.x
Linux (Ubuntu / Debian)
sudo apt update
sudo apt install git -y
git --version
Sur Fedora / RHEL :
sudo dnf install git -y
macOS
Git est souvent déjà présent via les Xcode Command Line Tools. Vérifiez d'abord :
git --version
Si absent, installez via Homebrew :
brew install git
2. Configurer son identité Git
Avant le premier commit, Git a besoin de connaître votre nom et votre adresse email. Ces informations sont attachées à chaque commit que vous créerez. Elles sont visibles dans l'historique et sur GitHub. Cette configuration est à faire une seule fois par poste.
git config --global user.name "Votre Nom"
git config --global user.email "vous@exemple.com"
# Définir VS Code comme éditeur par défaut (optionnel mais recommandé)
git config --global core.editor "code --wait"
# Vérifier la configuration
git config --list
3. Créer le .gitignore pour un projet Django
Le fichier .gitignore indique à Git quels fichiers et dossiers ne pas versionner. Pour un projet Django, plusieurs éléments ne doivent absolument jamais se retrouver sur GitHub : l'environnement virtuel (trop volumineux, spécifique à l'OS), les fichiers de secrets, la base de données SQLite locale, et les fichiers de cache Python.
Créez un fichier .gitignore à la racine de votre projet avec le contenu suivant :
env/
venv/
.venv/
# === Fichiers Python compilés ===
__pycache__/
*.py[cod]
*.pyo
# === Base de données locale ===
*.sqlite3
db.sqlite3
# === Fichiers de secrets et configuration locale ===
.env
.env.local
*.env
# === Fichiers media uploadés (spécifiques au poste) ===
media/
# === Fichiers statiques collectés ===
staticfiles/
static_root/
# === IDE et éditeurs ===
.vscode/
.idea/
*.swp
# === macOS ===
.DS_Store
# === Logs ===
*.log
Utiliser les variables d'environnement avec python-decouple
Pour que vos secrets restent hors du dépôt tout en étant utilisables, installez python-decouple et adaptez settings.py :
pip install python-decouple
pip freeze > requirements.txt
# settings.py
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)
ALLOWED_HOSTS = config('ALLOWED_HOSTS', default='127.0.0.1').split(',')
# .env (jamais versionné !)
SECRET_KEY=votre-clé-secrète-très-longue
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
Créez également un fichier .env.example que vous versionnez lui car il sert de modèle pour les nouveaux développeurs, sans contenir de vraies valeurs :
# .env.example (versionné dans Git - valeurs fictives)
SECRET_KEY=changez-moi
DEBUG=True
ALLOWED_HOSTS=127.0.0.1
4. Initialiser le dépôt local et faire le premier commit
Placez-vous à la racine de votre projet Django (là où se trouve manage.py) et exécutez les commandes suivantes dans l'ordre :
Initialiser Git - crée un dossier caché .git/ qui contiendra tout l'historique :
git init
Vérifier l'état - affiche les fichiers non suivis (en rouge) :
git status
Ajouter tous les fichiers au staging - le point . signifie "tout le répertoire courant" :
git add .
Vérifiez que le .gitignore a bien exclu les bons fichiers :
git status
# Les fichiers en vert sont dans le staging.
# env/, *.sqlite3, .env ne doivent PAS apparaître.
Créer le premier commit - le message décrit ce que contient ce snapshot :
git commit -m "feat: initialisation du projet Django"
5. Créer le dépôt distant sur GitHub
GitHub est la plateforme de référence pour héberger des dépôts Git. Il vous faut un compte gratuit sur github.com.
Connectez-vous sur GitHub et cliquez sur le bouton "New repository" (ou le + en haut à droite).
Remplissez le formulaire :
- Repository name : le nom de votre projet (ex. mon-blog-django)
- Visibility : Public (visible par tous) ou Private (visible par vous seul)
- Ne cochez rien dans "Initialize this repository" — votre dépôt local existe déjà
Cliquez sur "Create repository". GitHub affiche alors les commandes à exécuter — nous les utiliserons dans la section suivante.
Authentification : HTTPS ou SSH ?
Configurer SSH (recommandé)
Ouvrez Git Bash et générez une paire de clés SSH :
ssh-keygen -t ed25519 -C "vous@exemple.com"
# Appuyez sur Entrée pour accepter le chemin par défaut
# Définissez une passphrase ou laissez vide
# Afficher la clé publique à copier sur GitHub
cat ~/.ssh/id_ed25519.pub
ssh-keygen -t ed25519 -C "vous@exemple.com"
cat ~/.ssh/id_ed25519.pub
# Démarrer l'agent SSH et ajouter la clé
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
ssh-keygen -t ed25519 -C "vous@exemple.com"
# Ajouter au trousseau macOS
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
Copiez la clé publique affichée, puis dans GitHub : Settings → SSH and GPG keys → New SSH key. Collez la clé et sauvegardez. Testez la connexion :
ssh -T git@github.com
# Hi votre-username! You've successfully authenticated...
6. Lier le dépôt local au dépôt distant et pousser
Votre dépôt local existe, votre dépôt GitHub est créé, il faut maintenant les connecter. GitHub affiche ces commandes directement après la création du dépôt.
Avec SSH (recommandé)
# Lier le dépôt local au dépôt distant (à faire une seule fois)
git remote add origin git@github.com:votre-username/mon-blog-django.git
# Renommer la branche principale en "main" (convention actuelle)
git branch -M main
# Pousser le premier commit et définir "origin main" comme destination par défaut
git push -u origin main
Avec HTTPS
git remote add origin https://github.com/votre-username/mon-blog-django.git
git branch -M main
git push -u origin main
Après cette première fois, le flag -u (upstream) est mémorisé : les prochains git push sans argument pousseront automatiquement vers origin main.
7. Le workflow quotidien : add → commit → push
À chaque session de travail, le cycle Git se répète toujours dans le même ordre. Voici comment gérer vos modifications au quotidien :
# 1. Voir l'état des fichiers modifiés
git status
# 2. Ajouter les fichiers modifiés au staging
git add . # tout le projet
git add blog/models.py # un fichier précis
git add blog/ # un dossier entier
# 3. Créer un commit avec un message descriptif
git commit -m "feat: ajout du modèle Tag avec slug auto"
# 4. Pousser sur GitHub
git push
Bonnes pratiques de commit
Consulter l'historique
# Historique condensé, une ligne par commit
git log --oneline
# Historique avec détails (auteur, date, message)
git log --oneline --graph --all
# Voir les modifications d'un commit précis
git show abc1234
8. Récupérer le projet sur un autre poste
Vous changez d'ordinateur, vous intégrez un collègue dans le projet, ou vous configurez un serveur de production — dans tous ces cas, la procédure est la même : cloner le dépôt, créer l'environnement virtuel, installer les dépendances, configurer les secrets et appliquer les migrations.
Cloner le dépôt - télécharge l'intégralité du code et de l'historique Git dans un nouveau dossier :
# Via SSH (si vous avez configuré une clé SSH sur ce poste)
git clone git@github.com:votre-username/mon-blog-django.git
# Via HTTPS (sans configuration préalable)
git clone https://github.com/votre-username/mon-blog-django.git
# Se placer dans le dossier créé
cd mon-blog-django
Créer l'environnement virtuel - il n'est pas versionné, il faut le recréer sur chaque poste :
python -m venv env
env\Scripts\activate
python3 -m venv env
source env/bin/activate
python3 -m venv env
source env/bin/activate
Installer les dépendances depuis le fichier requirements.txt versionné dans Git :
pip install -r requirements.txt
Créer le fichier .env à partir du modèle .env.example et renseigner les vraies valeurs :
copy .env.example .env
# Puis éditez .env avec vos vraies valeurs (Notepad, VS Code...)
cp .env.example .env
nano .env # ou code .env si VS Code est installé
cp .env.example .env
open -e .env # ouvre dans TextEdit, ou utilisez code .env
Appliquer les migrations - recrée la base de données sur ce poste :
python manage.py migrate
Créer un superutilisateur pour accéder à l'interface admin :
python manage.py createsuperuser
Lancer le serveur et vérifier que tout fonctionne :
python manage.py runserver
Rester synchronisé au quotidien
Si vous travaillez sur plusieurs postes ou en équipe, commencez toujours votre session par un git pull pour récupérer les dernières modifications publiées sur GitHub :
# Récupérer et fusionner les dernières modifications du dépôt distant
git pull
# Si des nouvelles migrations ont été ajoutées par un collègue :
python manage.py migrate
9. Cheatsheet - commandes Git essentielles
Conclusion : Git, le filet de sécurité de tout développeur
Vous maîtrisez maintenant le cycle complet : initialiser un dépôt local, configurer le .gitignore pour protéger vos secrets, pousser vers GitHub, et relancer le projet sur n'importe quel poste en quelques commandes. Git n'est pas seulement une sauvegarde, c'est aussi un journal de bord qui vous permet de revenir en arrière, de comprendre l'évolution du code, et de collaborer sereinement.
Dans un prochain article, nous irons plus loin avec les branches Git : travailler sur des fonctionnalités en parallèle, gérer les pull requests sur GitHub, et résoudre les conflits de fusion. Des compétences indispensables dès que vous travaillez en équipe.