TawaKnow LogoTawaKnow
AWSDevOpsFavorisContribuer

© 2026 TawaKnow. Tous droits réservés.

Mentions LégalesPolitique de confidentialitéContribuer
Pratiques DevOps
0/29 chapitres0%
1.

Introduction au DevOps

2.

Introduction à Linux

3.

Système de Fichiers Linux

4.

Interface en Ligne de Commande (CLI)

5.

Gestionnaire de Paquets Linux

6.

Vim — Éditeur de Texte CLI

7.

Utilisateurs & Groupes Linux

8.

Permissions & Propriété des Fichiers

9.

Shell Scripting Bash

10.

Variables d'Environnement Linux

11.

Réseau Linux

12.

SSH — Secure Shell

13.

Introduction à Git & Contrôle de Version

14.

Configurer un Dépôt Git

15.

Flux de Travail Git — add, commit, push, pull

16.

Branches Git & Merge Requests

17.

Git Avancé — Commandes, .gitignore & Bonnes Pratiques

18.

Outils de Build & Gestionnaires de Paquets

19.

Build Tools, Docker & CI/CD

20.

Introduction à Nexus — Gestionnaire de Dépôts d'Artifacts

21.

Installer et Configurer Nexus sur un Serveur

22.

Nexus — Repositories, Publication et API REST

23.

Introduction aux Containers & Docker

24.

Commandes Docker & Registries

25.

Dockerfile — Créer des Images Docker

26.

Docker Compose, Volumes & Bonnes Pratiques

27.

Introduction à Jenkins & CI/CD

28.

Installer et Configurer Jenkins

29.

Jenkins Pipeline & Jenkinsfile

...Flux de Travail Git — add, commit, push, pull
CoursPratiques DevOpsFlux de Travail Git — add, commit, push, pull
Chapitre 15/29

Flux de Travail Git — add, commit, push, pullFlux de Travail Git — add, commit, push, pull

5 min de lecture
Total: ~5 min
Progression du cours0/29 chapitres

Flux de Travail Git — add, commit, push, pull

Git organise le travail en 4 zones distinctes. Comprendre ces zones est la clé pour maîtriser le workflow Git au quotidien.


Les 4 zones de Git

┌─────────────────┬─────────────────┬─────────────────┬─────────────────┐
│    Working      │    Staging      │     Local       │     Remote      │
│   Directory     │     Area        │   Repository    │   Repository    │
│                 │                 │                 │                 │
│  Vos fichiers   │  Fichiers prêts │  Historique     │  GitHub/GitLab  │
│  modifiés       │  au commit      │  des commits    │  (partagé)      │
└────────┬────────┴────────┬────────┴────────┬────────┴────────┬────────┘
         │                 │                 │                 │
         │   git add ──►   │  git commit ──► │  git push ──►   │
         │                 │                 │   ◄── git pull  │

git add — Passer en zone de staging

git add déplace les modifications du Working Directory vers la Staging Area.

# Ajouter un fichier spécifique
git add app.js

# Ajouter plusieurs fichiers
git add app.js style.css

# Ajouter tous les fichiers modifiés
git add .
git add -A

# Ajouter par dossier
git add src/

La Staging Area vous permet de choisir précisément quelles modifications seront incluses dans le prochain commit. Vous pouvez modifier 5 fichiers mais n'en commiter que 2.


git commit — Enregistrer dans le dépôt local

git commit crée un snapshot permanent des fichiers en staging dans le dépôt local.

# Commit avec message
git commit -m "feat: add user login form"

# Commit en ouvrant l'éditeur de texte (pour message long)
git commit

# Ajouter + commiter en une seule commande (fichiers déjà trackés uniquement)
git commit -am "fix: correct typo in header"
Avant commit :          Après commit :
Staging Area            Local Repository
┌──────────┐            ┌──────────────────────┐
│ app.js   │ ──────────►│  commit 3 (HEAD)     │
│ style.css│            │  commit 2             │
└──────────┘            │  commit 1             │
                        └──────────────────────┘

Anatomie d'un bon message de commit

feat: add user authentication

- Add login/logout endpoints
- Implement JWT token validation
- Add tests for auth middleware
PréfixeUsage
feat:Nouvelle fonctionnalité
fix:Correction de bug
docs:Documentation
refactor:Refactoring sans changement fonctionnel
test:Ajout ou modification de tests
chore:Tâches de maintenance (deps, config...)

git push — Envoyer vers le remote

git push transfère les commits locaux vers le dépôt distant.

# Push vers la branche courante
git push

# Push vers une branche spécifique
git push origin main
git push origin feature/login

# Premier push d'une nouvelle branche (avec tracking)
git push -u origin feature/login
# Après -u, les prochains push sur cette branche : juste "git push"
Local Repository         Remote Repository
┌──────────────┐         ┌──────────────┐
│  commit 3    │ ──────► │  commit 3    │
│  commit 2    │         │  commit 2    │
│  commit 1    │         │  commit 1    │
└──────────────┘         └──────────────┘
                git push

git pull — Récupérer depuis le remote

git pull récupère les commits du remote et les fusionne dans votre branche locale.

# Pull de la branche courante
git pull

# Pull d'une branche spécifique
git pull origin main

# Pull avec rebase (historique plus propre)
git pull --rebase origin main
Remote Repository        Local Repository
┌──────────────┐         ┌──────────────┐
│  commit 4    │ ──────► │  commit 4    │ (nouveau)
│  commit 3    │         │  commit 3    │
│  commit 2    │         │  commit 2    │
└──────────────┘         └──────────────┘
                git pull

git pull = git fetch + git merge Toujours pull avant de push pour éviter les conflits.


git status — Voir l'état du repo

git status
On branch main
Changes to be committed:        ← Staging Area (git add fait)
  (use "git restore --staged" to unstage)
    modified: app.js

Changes not staged for commit:  ← Working Directory (modifié mais pas add)
  (use "git add" to stage)
    modified: style.css

Untracked files:                ← Nouveaux fichiers non encore trackés
  (use "git add" to include)
    config.js

git log — Voir l'historique

# Historique complet
git log

# Format compact (un commit par ligne)
git log --oneline

# Avec graphe des branches
git log --oneline --graph --all

# Limiter le nombre de commits
git log -5

# Filtrer par auteur
git log --author="Alice"

# Commits qui modifient un fichier
git log -- app.js
Exemple de git log --oneline --graph :
* a3f2c1d (HEAD -> main) feat: add payment module
* b12e8f0 fix: correct cart total calculation
* c891a2e feat: implement shopping cart
* d45b7c3 initial commit

git diff — Voir les différences

# Modifications non stagées (Working Directory vs Staging)
git diff

# Modifications stagées (Staging vs dernier commit)
git diff --cached
git diff --staged

# Différence entre deux commits
git diff abc123 def456

# Différence avec le dernier commit
git diff HEAD

Workflow quotidien typique

# Matin : récupérer les derniers changements de l'équipe
git pull

# Travailler sur le code...

# Voir ce qui a changé
git status
git diff

# Stager les fichiers
git add app.js

# Commiter
git commit -m "feat: implement user profile page"

# Pousser vers le remote
git push

À retenir

  • 4 zones : Working Directory → Staging Area → Local Repo → Remote Repo
  • git add <file> = placer en staging (prêt pour le commit)
  • git commit -m "message" = enregistrer le snapshot dans le repo local
  • git push = envoyer les commits locaux vers le remote
  • git pull = récupérer et fusionner les commits du remote
  • git status = voir l'état des fichiers (modifié, stagé, non tracké)
  • git log --oneline = historique compact des commits
  • git diff = voir les différences non stagées ; git diff --cached = différences stagées
  • Toujours pull avant push pour éviter les conflits
Précédent
Configurer un Dépôt Git
Suivant
Branches Git & Merge Requests
Sur cette page
PrécédentSuivant