Votre premier dépôt Git
Module 00 30 min
Objectifs de la section
- Créer un dépôt Git depuis zéro avec
git init - Cloner un dépôt existant avec
git clone - Comprendre la structure du dossier
.git - Faire votre premier commit
- Comprendre l'utilité du
.gitignore
Créer un dépôt : git init
Il y a 2 façons de démarrer avec un dépôt Git :
Méthode 1 : git init — Partir de zéro
# Créer et naviguer vers un nouveau dossier
mkdir mon-premier-projet
cd mon-premier-projet
# Initialiser le dépôt Git
git init
# Sortie : Initialized empty Git repository in .../mon-premier-projet/.git/
# Vérifier que le dossier .git a été créé
ls -la
# Vous devriez voir : .git/
Que fait git init ?
Il crée un dossier caché .git contenant tout ce dont Git a besoin :
.git/
├── HEAD ← Pointeur vers la branche actuelle (contient : ref: refs/heads/main)
├── config ← Configuration spécifique au dépôt
├── description ← Description du dépôt (utilisée par GitWeb)
├── hooks/ ← Scripts déclenchés automatiquement (pre-commit, post-commit, etc.)
├── info/
│ └── exclude ← .gitignore local (non partagé)
├── objects/ ← Tous les objets Git (blobs, trees, commits) — vide au départ
│ ├── info/
│ └── pack/
└── refs/ ← Références aux branches et tags — vide au départ
├── heads/
└── tags/
Ne jamais modifier manuellement le dossier .git
Le dossier .git est le « cerveau » de Git. Modifier manuellement des fichiers dedans peut corrompre votre dépôt. Utilisez toujours les commandes Git.
Méthode 2 : git clone — Copier un dépôt existant
# Cloner via HTTPS
git clone https://github.com/username/repository.git
# Cloner via SSH (recommandé après configuration SSH)
git clone git@github.com:username/repository.git
# Cloner dans un dossier avec un nom spécifique
git clone git@github.com:username/repository.git mon-nom-de-dossier
# Cloner uniquement les N derniers commits (clone partiel — plus rapide pour les grands dépôts)
git clone --depth 1 git@github.com:username/repository.git
Votre premier commit — Étape par étape
Créons un projet complet depuis zéro :
Étape 1 : Créer quelques fichiers
# Nous sommes dans mon-premier-projet/
echo "# Mon Premier Projet" > README.md
echo "print('Bonjour, Git!')" > main.py
Étape 2 : Vérifier l'état du dépôt
git status
Sortie :
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README.md
main.py
nothing added to commit but untracked files present (use "git add" to track)
Étape 3 : Ajouter les fichiers à la zone de staging
# Ajouter un fichier spécifique
git add README.md
# Ajouter tous les fichiers
git add .
# Ajouter les fichiers par pattern
git add *.py
git status
Sortie :
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README.md
new file: main.py
Étape 4 : Faire le commit
git commit -m "Commit initial : ajout de README et main.py"
Sortie :
[main (root-commit) a3f4b2c] Commit initial : ajout de README et main.py
2 files changed, 2 insertions(+)
create mode 100644 README.md
create mode 100644 main.py
Étape 5 : Voir l'historique
git log
Sortie :
commit a3f4b2c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7 (HEAD -> main)
Author: Alice Dupont <alice@exemple.com>
Date: Wed Mar 18 14:30:00 2026 +0000
Commit initial : ajout de README et main.py
Le fichier .gitignore
Le fichier .gitignore indique à Git quels fichiers ou dossiers ne jamais suivre :
Ce qu'il faut généralement ignorer
# ============================
# Fichiers du système d'exploitation
# ============================
.DS_Store # macOS
Thumbs.db # Windows
desktop.ini # Windows
# ============================
# Fichiers d'éditeur
# ============================
.vscode/
.idea/
*.swp # Fichiers temporaires Vim
*.swo
# ============================
# Dépendances
# ============================
node_modules/ # JavaScript
__pycache__/ # Python
*.pyc # Fichiers compilés Python
venv/ # Environnement virtuel Python
.env # Variables d'environnement (SECRETS !)
# ============================
# Sorties de build
# ============================
dist/
build/
*.egg-info/
target/ # Java/Maven
# ============================
# Logs
# ============================
*.log
logs/
# ============================
# Variables d'environnement (IMPORTANT !)
# ============================
.env
.env.local
.env.*.local
*.env
Ne jamais commiter les fichiers .env !
Les fichiers contenant des mots de passe, des clés API et des tokens ne doivent jamais être commités dans Git. Une fois dans l'historique, ils sont très difficiles à supprimer complètement, et si poussés sur GitHub, ils pourraient être compromis en quelques secondes par des bots automatisés.
Ressources utiles pour .gitignore
# GitHub fournit des modèles prêts à l'emploi :
# https://github.com/github/gitignore
# Créer un .gitignore pour plusieurs technologies :
# https://gitignore.io
Vérifier si un fichier est ignoré
# Vérifier si un fichier est ignoré (et pourquoi)
git check-ignore -v .env
# Sortie : .gitignore:12:.env .env
# Voir tous les fichiers ignorés
git status --ignored
Visualisation du workflow complet
Résumé des commandes clés
| Commande | Description |
|---|---|
git init | Initialiser un nouveau dépôt |
git clone <url> | Cloner un dépôt existant |
git status | Afficher l'état des fichiers |
git add <fichier> | Ajouter un fichier à la zone de staging |
git add . | Ajouter tous les fichiers modifiés |
git commit -m "message" | Créer un commit |
git log | Afficher l'historique des commits |
git log --oneline | Historique compact |
Prochaines étapes
- TP1 - Installation & Config — Appliquer tout ce module en pratique
- Module 01 - Fondamentaux Git — Aller plus loin avec les commandes Git