La boucle de travail avec Git

Ouverture du projet
git pull
Modifier fichiers
git add
git commit
git push
1

Ouverture d'un projet existant

À cette étape :

  • Vous ouvrez un projet existant déjà cloné sur votre ordinateur, qui contient déjà des fichiers
  • Le dépôt local est synchronisé avec le dépôt distant
  • Tous les fichiers sont dans un état propre (committed)
  • Aucun fichier n'a été modifié depuis le dernier commit

Arborescence du projet

mon-site-web/
index.html (non modifié)
about.html (non modifié)
services.html (non modifié)
contact.html (non modifié)
css/
style.css (non modifié)
img/
logo.png (non modifié)
banner.jpg (non modifié)

État de Git

Fichiers modifiés

Aucun

Zone de transit (Staging)

Vide

Dépôt local

Dernier commit : structure initiale du site

Synchronisé avec origin/main

2

Synchroniser avec le dépôt distant (git pull)

Cette étape consiste à :

Avant de commencer à travailler, il est important de s'assurer que votre dépôt local est à jour avec le dépôt distant.

  • Vous exécutez la commande git pull pour récupérer les dernières modifications du dépôt distant
  • Git vérifie si de nouveaux commits ont été ajoutés au dépôt distant depuis votre dernier pull
  • Si des changements sont détectés, Git les intègre automatiquement dans votre dépôt local
  • Si des conflits surviennent (modifications incompatibles), Git vous alertera pour que vous puissiez les résoudre manuellement

Commande à exécuter

git pull

Dans cet exemple, on considère un pull réussi sans conflit. Autrement dit, il n'y a pas eu de conflits de fusion et la branche locale a été mise à jour avec les derniers changements du dépôt distant.

Avant le pull

Dépôt local (ordinateur)

Dernier commit local : structure initiale du site

Dépôt distant (gitlab)

Vérification si de nouveaux commits sont disponibles

Après le pull : synchronisation

Pull réussi sans conflit
  • Les changements distants sont intégrés automatiquement
  • Aucun conflit car les modifications sont compatibles
  • La branche locale est mise à jour

Important : Toujours faire un git pull au début de chaque session de travail pour éviter les conflits de fusion.

3

Modifier des fichiers

À cette étape :

Vous travaillez sur un projet existant déjà synchronisé. Vous avez modifié un fichier HTML (par exemple, index.html). Dès qu'un fichier est modifié, il apparaît maintenant comme "Modified (M)" dans l'état de Git. Le dépôt distant n'est alors plus à jour avec vos modifications locales.

Arborescence du projet

Dans cet exemple, on modifie le fichier index.html. Par exemple, on modifie le titre de la page d'accueil (h1):

Avant les modifications :

<h1>Welcome to my website</h1>

Après les modifications :

<h1>Bienvenue sur mon site web</h1>
mon-site-web/
index.html (M)
about.html (non modifié)
services.html (non modifié)
contact.html (non modifié)
css/
style.css (non modifié)
img/
logo.png (non modifié)
banner.jpg (non modifié)

État de Git

Fichiers modifiés (M)
index.html
Zone de transit (Staging)

Vide

Dépôt local

Dernier commit : structure initiale du site

4

Ajouter les modifications à la zone de transit (git add)

À cette étape :

  • Vous avez modifié un fichier et êtes prêt à le préparer pour le commit
  • Vous dites à Git : "Ce fichier modifié est prêt à être sauvegardé"
  • Le fichier passe de Modified (M) à Added (A)
  • Seuls les fichiers dans la zone de transit feront partie du prochain commit

Commande à exécuter

git add .
mon-site-web/
index.html (A)
about.html (non modifié)
services.html (non modifié)
contact.html (non modifié)
css/
style.css (non modifié)
img/
logo.png (non modifié)
banner.jpg (non modifié)

État de Git

Fichiers modifiés (M)

Aucun

Zone de transit (Staging)
index.html

Seuls les fichiers ajoutés à la zone de transit feront partie du prochain commit.

Vous pouvez utiliser git add nom-du-fichier pour un fichier spécifique, ou git add . pour tous les fichiers modifiés.

5

Créer un commit avec les modifications

À cette étape:

  • Vous avez ajouté vos modifications à la zone de transit
  • Vous exécutez la commande git commit -m "message" pour créer un commit
  • Le commit enregistre un instantané des fichiers dans la zone de transit
  • Le message décrit les changements effectués dans ce commit
  • Vos modifications sont maintenant sauvegardées localement dans l'historique des commits
  • Le tout est prêt pour un PUSH

Commande à exécuter

git commit -m "Modification de la page d'accueil"

Aperçu des changements

--- a/index.html
+++ b/index.html
@@ -1,6 +1,6 @@
 <h1>Bienvenue</h1>
-<p>Ceci est notre site web.</p>
+<p>Ceci est notre site web avec des modifications.</p>
 </body>
 </html>

Arborescence du projet

mon-site-web/
index.html committed
about.html (non modifié)
services.html (non modifié)
contact.html (non modifié)
css/
style.css (non modifié)
img/
logo.png (non modifié)
banner.jpg (non modifié)

État de Git

Dépôt propre

Les modifications ont été commitées. Prêt pour un push.

Le message -m "..." décrit ce que contient ce commit. Soyez descriptif ! Vos fichiers sont maintenant sauvegardés localement.

6

Envoyer les modifications vers le dépôt distant (push)

À cette étape :

  • Vos modifications sont sauvegardées localement dans un commit
  • Pour les partager avec votre équipe, vous devez les pousser vers le dépôt distant (gitlab)
  • Cela permet de sauvegarder votre travail en ligne et de collaborer
  • Le dépôt distant sera mis à jour avec vos nouveaux commits
  • Les autres membres de l'équipe pourront récupérer ces modifications, de la même façon que vous l'avez fait au début (pull)

Commande à exécuter

git push

Dans cet exemple, on considère que le push est réussi sans conflit. Autrement dit, les commits locaux sont envoyés directement vers le dépôt distant.

Cas illustré : Push réussi

  • Le dépôt distant n'a pas de nouveaux commits
  • Aucun conflit car rien à récupérer
  • Les commits locaux sont envoyés directement

État de Git

Avant le push

Dépôt local

1 commit prêt à être envoyé

Après le push : synchronisation

b2c3d4e Modifica tion de la page d'accueil main ↔ origin/main

Note : Si c'est votre première push sur cette branche, vous devrez peut-être configurer la branche avec git push -u origin main