Aller au contenu principal

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

CommandeDescription
git initInitialiser un nouveau dépôt
git clone <url>Cloner un dépôt existant
git statusAfficher 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 logAfficher l'historique des commits
git log --onelineHistorique compact

Prochaines étapes