Dépot (repository) : emplacement où Git stocke les fichiers et l’historique des versions.
Local vs. Distant :
Un référentiel local est stocké sur votre machine.
Un référentiel distant est hébergé sur un serveur (par exemple, GitHub). Bare repository : pas de copie de travail.
Initialisation d’un Référentiel
Créer un nouveau référentiel :
git init
Initialise un nouveau référentiel Git dans le répertoire courant.
Pratique : Initialisation d’un Référentiel
cd${PROJECT_DIR}git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /tmp/github/ebpro/notebook-git/.git/
Ajout de Fichiers au Suivi
Ajouter des fichiers au suivi :
git add nom-du-fichier
Ajoute un fichier spécifique au suivi.
git add .
Ajoute tous les fichiers modifiés au suivi.
git status
Indique l’état courant et les actions possibles.
Vérifier l’état :
git status
Affiche l’état des fichiers dans le répertoire de travail et l’index.
Exercice Pratique : Ajout de Fichiers au Suivi
Créez un fichier README et ajoutez-y du contenu.
Ajoutez le fichier au suivi avec git add.
echo"# Hello"> READMEgit status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
README
nothing added to commit but untracked files present (use "git add" to track)
git add READMEgit status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: README
Commits
Qu’est-ce qu’un Commit ? :
Un commit est un instantané des modifications apportées au projet.
Chaque commit a un identifiant unique et un message descriptif.
Hash SHA-1 : identifiant unique (ex : a1b2c3d4)
Messages de Commit :
Les messages de commit doivent être clairs et concis.
Exemple : git commit -m "Ajout de la fonctionnalité X"
Exercice Pratique : Création d’un Commit
Validez les modifications avec un message de commit.
git commit -m"Ajout d'une documentation de base"
[master (root-commit) b18bc7b] Ajout d'une documentation de base
1 file changed, 1 insertion(+)
create mode 100644 README
git status
On branch master
nothing to commit, working tree clean
Historique des Commits
Voir l’historique des commits :
git log
Affiche la liste des commits avec leurs messages, auteurs et dates.
git log
commit b18bc7bf3cc26ad4de5fe70fe311bee2b76e79af (HEAD -> master)
Author: John Doe <john.doe@nowhere.net>
Date: Sat Oct 3 09:59:12 2026 +0000
Ajout d'une documentation de base
Affichage Amélioré de l’Historique
Possibilité d’afficher l’historique de manière plus visuelle et informative.
* b18bc7b - (7 seconds ago) Ajout d'une documentation de base - John Doe (HEAD -> master)
Ignorer des fichiers
Fichier .gitignore :
Permet de spécifier les fichiers et répertoires à ignorer par Git.
Utile pour éviter de suivre les fichiers temporaires, les dépendances, etc.
Exercice Pratique : Création d’un Fichier .gitignore
Créez un fichier temporaire (extension .tmp) et ajoutez-le au .gitignore.
touch bidon.tmpecho"*.tmp">.gitignoregit statusgit add .git commit -m"ajoute un gitignore."
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
[master 12c7333] ajoute un gitignore.
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
Affichage des Modifications
Voir les différences :
git diff
Affiche les différences entre les fichiers modifiés et la dernière version validée.
echo"Bla bla">> READMEgit diff
diff --git a/README b/README
index fec5601..9aeec5f 100644
--- a/README
+++ b/README
@@ -1 +1,2 @@
# Hello
+Bla bla
git add . git commit -m"améliore la description"
[master 8f4c827] améliore la description
1 file changed, 1 insertion(+)
Création et Gestion des Branches
Les branches permettent de travailler sur différentes versions du projet simultanément.
Commande pour créer une branche : git branch nom-de-branche
Commande pour changer de branche : git checkout nom-de-branche
Crée une nouvelle branche et bascule dessus : git checkout -b nom-de-branche
switch : git switch nom-de-branche (Git 2.23+), git switch -c nom-de-branche (crée et switch), nouvelle commande plus intuitive.
Exercice Pratique : Création et Changement de Branches
Créez une nouvelle branche nommée feature/main et basculez dessus.
Ajoutez un fichier Main.java et validez les modifications.
* 8f4c827 - (0 seconds ago) améliore la description - John Doe (HEAD -> feature/main, master)
* 12c7333 - (0 seconds ago) ajoute un gitignore. - John Doe
* b18bc7b - (8 seconds ago) Ajout d'une documentation de base - John Doe
lg1
* 8f4c827 - Sat, 3 Oct 2026 09:59:20 +0000 (0 seconds ago) (HEAD -> feature/main, master)
| améliore la description - John Doe
* 12c7333 - Sat, 3 Oct 2026 09:59:20 +0000 (0 seconds ago)
| ajoute un gitignore. - John Doe
* b18bc7b - Sat, 3 Oct 2026 09:59:12 +0000 (8 seconds ago)
Ajout d'une documentation de base - John Doe
Fusion (Merge) des Branches
La fusion permet d’intégrer les modifications d’une branche dans une autre.
Commande pour fusionner : git merge nom-de-branche
Travailler avec des Référentiels Distants
Remote repository : un dépôt hébergé sur un serveur distant (ex : GitHub, GitLab, Bitbucket).
Permet la collaboration entre plusieurs développeurs.
Commandes principales :
git clone URL-du-référentiel : cloner un dépôt distant.
git push : envoyer les modifications locales vers le dépôt distant.
git fetch : récupérer les modifications du dépôt distant sans les fusionner.
git pull : récupérer les modifications du dépôt distant et les fusionner avec le dépôt local. (équivalent de git fetch + git merge)
Clonage d’un Référentiel
Cloner un référentiel :
git clone URL-du-référentiel
Crée une copie locale d’un référentiel distant.
Pousser des Modifications
Envoyer des modifications au référentiel distant :
git push
Envoie les commits locaux au référentiel distant.
Récupérer des Modifications
Mettre à jour le référentiel local avec les modifications distantes :
git pull
Récupère les modifications du référentiel distant et les fusionne avec le référentiel local.
Ajout/Suppression de Remotes
Plusieurs référentiels distants peuvent être configurés pour un même projet.
Cela permet de travailler avec plusieurs remotes (ex : origin, upstream).
Ajouter un remote :
git remote add nom URL
Ajoute un nouveau référentiel distant.
Supprimer un remote :
git remote remove nom
Supprime un référentiel distant.
Lister les remotes :
git remote -v
Affiche la liste des référentiels distants.
Exercice Pratique : Clonage et Push
Poussez un projet local vers un nouveau dépôt distant.
Créez un nouveau dépôt sur GitHub.
Ajouter un remote origin pointant vers ce dépôt.
Poussez votre branche feature/main vers ce dépôt.
Créer un nouveau repository GitHub MyJavaProject
Créer un projet Java dans ce repository
Gestion des Branches et des Fusions
Les branches permettent de travailler sur différentes versions du projet simultanément.
La fusion permet d’intégrer les modifications d’une branche dans une autre.
Commandes principales :
git branch nom-de-branche : créer une nouvelle branche.