SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
SCM avec Git
Dr . Salah Gon tar a
20 23- 24
Sour ce Code Management
◇ La gestion du code source (SCM)
est utilisée pour suivre les
modifications apportées à un
référentiel de code source.
◇ SCM suit un historique des
modifications apportées à une base
de code et aide à résoudre les
conflits lors de la fusion des mises
à jour de plusieurs contributeurs.
◇ SCM est également synonyme de
contrôle de version.
Codons à plusieur s !
Versionner son projet avec Git
Pour quoi utiliser git ?
Objectifs :
◇ travailler à plusieurs sans se marcher dessus :
indispensa ble pour les projets en équipe
◇ garder un historique propre de toutes les
modifications : on orga nise son tra va il sous forme de
“commits” documentés
La théor ie de git
W orking directory
C’est la zone de travail :
les fichiers tout juste
modifiés sont ici
Index
Zone qui permet de
stocker les modifications
séléctionées en vue d’être
commitées
Local repository
Code commité, prêt à être
envoyé sur un serveur
distant
3 zones, 3 ambiances
Les modifications sont sauvegardés 3 fois
Un bon commit est un commit :
◇ qui ne concerne qu’une seule
fonctionna lité du progra mme
◇ le plus petit possible tout en resta nt
cohérent
◇ Idéa lement qu’il compile seul
Les commits
C’est quoi concrètement un commit ?
◇ une différence (ajout / suppression de
lignes)
◇ des méta-données (titre, hash,
auteur)
Commit : ensemble de modifica tions cohérentes du
code
Les commits
4a7f5a6c478.. 7a4d5f97d8bb.. 0a4d9f8d4dda..
Formulaire ajout
commentaire
Ajout
commentaire
dans base de
données
Affichage des
commentaires
des publications
Arbre de commits dans le git repository
Aller jusqu’au commit
W orking directory
C’est la zone de travail :
les fichiers tout juste
modifiés sont ici
Index
Zone qui permet de
stocker les modifications
séléctionées en vue d’être
commitées
Local repository
Code commité, prêt à être
envoyé sur un serveur
distant
3 zones, 3 ambiances
Les modifications sont sauvegardés 3 fois
git add git commit
Aller jusqu’au commit
Où j’en suis dans mes 3 zones ?
git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: views/add_commentaire.php
no changes added to commit (use "git add" and/or "git commit -a")
Aller jusqu’au commit
Visualiser les différences entre le working directory et l’index
git diff
diff --git a/views/add_commentaire.php b/views/add_commentaire.php
index e69de29..8cff573 100644
--- a/views/add_commentaire.php
+++ b/views/add_commentaire.php
@@ -0,0 +1,6 @@
<?php include('header.php'); ?>
+<form action="/commentaire/ajouter" method="post">
+ <p>Pseudo : <input type="text" name="pseudo"/></p>
+ <p>Commentaire : <textarea name="commentaire"></textarea></p>
+</form>
Aller jusqu’au commit
Ajouter mes modifications à la zone de staging (index)
git add views/add_commentaire.php
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: views/add_commentaire.php
Aller jusqu’au commit
Récupitulatif des commandes
w orking directory index git repository
git add mon_fichier
git add -p (interactif)
git add -A (tout ajouter)
git commit -m “message”
git diff git diff --staged
a fficha ge
différences
a jouter des
modifica tions
Revenir au der nier commit
git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: model/commentaires_model.php
no changes added to commit (use "git add" and/or "git commit -a")
Revenir au der nier commit
Enlever des modifications dans le working directory
git checkout -- monfichier
git status
On branch master
nothing to commit, working directory clean
Désindexer des fichier s
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: model/commentaires_model.php
Désindexer des fichier s
git reset HEAD monfichier
git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: model/commentaires_model.php
no changes added to commit (use "git add" and/or "git commit -a")
Aller jusqu’au commit
Récupitulatif des commandes
w orking directory index git repository
git diff git diff --staged
git add monfichier git commit -m “titre”
git checkout -- monfichier git reset HEAD monfichier
git reset --hard
git commit -am “titre” (si le fichier a déjà été indexé)
◇ branche : pointeur vers un commit
◇ une bra nche principa le : master
◇ Bra nche coura nte : HEAD
◇ en généra l, une bra nche pa r fonctionna lité en cours de
développement
Les br anches
Les br anches
C1 C2 C3
C4 C5
master*
fonctionnalité
Les br anches et commits
4a7f5a6c478.. 7a4d5f97d8bb.. 0a4d9f8d4dda..
formulaire ajout
commentaire
ajout
commentaire
dans base de
données
affichage des
commentaires
des publications
Arbre de commits dans le git repository
master
HEAD
Pull Request
Collaborer avec des Pull Requests
Une Pull Request est une fonctionnalité essentielle pour la collaboration sur des
projets Git.
Elle permet aux collaborateurs de proposer des modifications à une branche
principale et de demander leur intégration.
Points clés :
◇ Crée un espace pour la discussion et la révision des modifications.
◇ Les autres contributeurs peuvent examiner, commenter et approuver les
modifications.
◇ Facilite un flux de travail de révision de code avant la fusion.
Gestion des br anches
Création et modification de branches
git branch : affichage des branches
git branch ma_branche : créer la branche ma_branche
git checkout ma_branche : déplace HEAD vers ma_branche
git checkout -b ma_branche : créer la branche
ma_branche et déplace HEAD dessus
ou pour simplifier...
Gestion des br anches
Merge : intégration des modifications d’une branche dans la branche
courante
git merge ma_branche: merge ma branche dans la branche
courante
C1 C2 C3
C4 C5
ma ster*
bugFix
C1 C2 C3
C4 C5
ma ster*
bugFix
C6
Gestion des br anches
Merge : intégration des modifications d’une branche dans la branche
courante
git merge ma_branche: merge ma branche dans la branche
courante
Les dépots distants
Centraliser les données sur un dépot git !
◇ git directory sur un serveur distant pour le travail collaboratif
◇ Dépots dista nts :
■ github
■ Gitlab
Pourquoi gitla b ?
◇ code review, merge request, interfa ce web, CI/CD...
Les dépôts distants
Voir et ajouter des
dépots dis tan ts
git clone <url>
Cloner un dépot distant : crée un dossier et récupère les fichiers
Envoyer sur le dépot
dis tan t
git push
Envoie notre local repository sur le dépot distant
On ne touche plus aux commits pushés !
Recevoir depuis le dépot
dis tan t
git pull
Récupère les commits sur le dépot distant et met à jour le working directory
git Mer ge vs git Rebas e
Le schéma de base de git
Récupitulatif des commandes
w orking directory index git repository
git diff git diff --staged
git add git commit
git checkout -- git reset
git reset --hard
remote git
repository
git push
git pull
git fetch
Pour accéder aux dépots sur gitlab, il faut y ajouter sa clé
On génère une pa ire de clés :
ssh-keygen -t rsa -C "prenom.nom@email.tn"
On a ffiche le contenu de la clé publique :
cat ~/.ssh/id_rsa.pub
On copie tout le contenu de la clé publique sur https://gitla b.com/ > mon profil > clés SSH
Authentification par clé
git config --global user.name "Prénom Nom"
git config --global user.email “prenom.nom@email.tn”
En option mais c’est mieux :
git config --global color.ui true
git config --global color.diff.meta yellow
Configur ation minimale
La zone de chaos : Stas h
Le stash ça sert à :
◇ Sa uvega rder les modifica tions du working directory da ns une
zone ta mpon pour rendre le working directory propre.
◇ Possibilité de rejouer les modifica tions sta shées n’importe où
◇ Peut être vu comme une zone de brouillons
Stash : les
com m an des
On stash un ensemble de modifications
git stash
On récupères les modifica tions sta shées
git stash apply
Pour plusieurs sta shs :
git stash list
git stash apply stash@{id}
Effa cer le contenu du sta sh
git stash clear
Git Flow
Git Flow est une méthodologie de gestion des branches pour le
développement de logiciels.
Git Flow facilite la gestion des fonctionnalités, des correctifs et des
versions dans un projet logiciel.
Pr incipes de Git Flow
•Git Flow se compose de plusieurs types de branches clés :
• Branches principale (Main) : Représente la version de
production sta ble.
• Branches de fonctionnalités (Feature) : Pour le développement
de nouvelles fonctionna lités.
• Branches de publication (Release) : Prépa re une version pour
la production.
• Branches de correctifs (Hotfix) : Corrige des problèmes de
production.
•Les développeurs suivent un processus spécifique pour fusionner ces
bra nches en utilisa nt des règles strictes.
Gestion des Releases
dan s Git
Les "Releases" (ou versions) dans Git permettent de marquer des points
spécifiques dans l'historique du projet logiciel.
Pourquoi utiliser les Releases ?
•Ma rquer des versions sta bles du logiciel.
•Fa ciliter la gestion des mises à jour et des déploiements.
•Permettre a ux utilisa teurs de télécha rger des versions spécifiques.
Gestion des Releases
dan s Git
Comment créer une Release :
1.git checkout [branche-cible] : Aller sur la bra nche que vous souha itez ma rquer
comme version sta ble.
2.git tag [nom-de-la-release] : Créer un ta g pour la version
(pa r exemple, v1.0.0).
3.git push origin [nom-de-la-release] : Pousser le ta g vers
le dépôt dista nt.
Pour aller plus loin avec
git...
◇ git rebase ou git merge ?
◇ balader ses commits avec git cherry-pick
◇ afficher un commit : git show <commit>
◇ Engueulez vos a mis : git blame <fichier>
◇ visua liser l’historique des commits : git log
◇ J’a i tout ca ssé ! git reflog

Contenu connexe

Similaire à 3_SCM_Git.pdf

Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & githubMonoem Youneb
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...akramalidrissi1
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projectsThierry Gayet
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 gitPape Diop
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 

Similaire à 3_SCM_Git.pdf (20)

Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Git and Github.pptx
Git and Github.pptxGit and Github.pptx
Git and Github.pptx
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Introduction à git
Introduction à gitIntroduction à git
Introduction à git
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
git.pdf
git.pdfgit.pdf
git.pdf
 

Dernier

SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSKennel
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...maach1
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfalainfahed961
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptbentaha1011
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).FatimaEzzahra753100
 

Dernier (8)

CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
 
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
 
Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdfActions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
 
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.pptCHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
 
présentation sur la logistique (4).
présentation     sur la  logistique (4).présentation     sur la  logistique (4).
présentation sur la logistique (4).
 

3_SCM_Git.pdf

  • 1. SCM avec Git Dr . Salah Gon tar a 20 23- 24
  • 2. Sour ce Code Management ◇ La gestion du code source (SCM) est utilisée pour suivre les modifications apportées à un référentiel de code source. ◇ SCM suit un historique des modifications apportées à une base de code et aide à résoudre les conflits lors de la fusion des mises à jour de plusieurs contributeurs. ◇ SCM est également synonyme de contrôle de version.
  • 3. Codons à plusieur s ! Versionner son projet avec Git
  • 4. Pour quoi utiliser git ? Objectifs : ◇ travailler à plusieurs sans se marcher dessus : indispensa ble pour les projets en équipe ◇ garder un historique propre de toutes les modifications : on orga nise son tra va il sous forme de “commits” documentés
  • 5. La théor ie de git W orking directory C’est la zone de travail : les fichiers tout juste modifiés sont ici Index Zone qui permet de stocker les modifications séléctionées en vue d’être commitées Local repository Code commité, prêt à être envoyé sur un serveur distant 3 zones, 3 ambiances Les modifications sont sauvegardés 3 fois
  • 6. Un bon commit est un commit : ◇ qui ne concerne qu’une seule fonctionna lité du progra mme ◇ le plus petit possible tout en resta nt cohérent ◇ Idéa lement qu’il compile seul Les commits C’est quoi concrètement un commit ? ◇ une différence (ajout / suppression de lignes) ◇ des méta-données (titre, hash, auteur) Commit : ensemble de modifica tions cohérentes du code
  • 7. Les commits 4a7f5a6c478.. 7a4d5f97d8bb.. 0a4d9f8d4dda.. Formulaire ajout commentaire Ajout commentaire dans base de données Affichage des commentaires des publications Arbre de commits dans le git repository
  • 8. Aller jusqu’au commit W orking directory C’est la zone de travail : les fichiers tout juste modifiés sont ici Index Zone qui permet de stocker les modifications séléctionées en vue d’être commitées Local repository Code commité, prêt à être envoyé sur un serveur distant 3 zones, 3 ambiances Les modifications sont sauvegardés 3 fois git add git commit
  • 9. Aller jusqu’au commit Où j’en suis dans mes 3 zones ? git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: views/add_commentaire.php no changes added to commit (use "git add" and/or "git commit -a")
  • 10. Aller jusqu’au commit Visualiser les différences entre le working directory et l’index git diff diff --git a/views/add_commentaire.php b/views/add_commentaire.php index e69de29..8cff573 100644 --- a/views/add_commentaire.php +++ b/views/add_commentaire.php @@ -0,0 +1,6 @@ <?php include('header.php'); ?> +<form action="/commentaire/ajouter" method="post"> + <p>Pseudo : <input type="text" name="pseudo"/></p> + <p>Commentaire : <textarea name="commentaire"></textarea></p> +</form>
  • 11. Aller jusqu’au commit Ajouter mes modifications à la zone de staging (index) git add views/add_commentaire.php git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: views/add_commentaire.php
  • 12. Aller jusqu’au commit Récupitulatif des commandes w orking directory index git repository git add mon_fichier git add -p (interactif) git add -A (tout ajouter) git commit -m “message” git diff git diff --staged a fficha ge différences a jouter des modifica tions
  • 13. Revenir au der nier commit git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: model/commentaires_model.php no changes added to commit (use "git add" and/or "git commit -a")
  • 14. Revenir au der nier commit Enlever des modifications dans le working directory git checkout -- monfichier git status On branch master nothing to commit, working directory clean
  • 15. Désindexer des fichier s git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: model/commentaires_model.php
  • 16. Désindexer des fichier s git reset HEAD monfichier git status On branch master Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: model/commentaires_model.php no changes added to commit (use "git add" and/or "git commit -a")
  • 17. Aller jusqu’au commit Récupitulatif des commandes w orking directory index git repository git diff git diff --staged git add monfichier git commit -m “titre” git checkout -- monfichier git reset HEAD monfichier git reset --hard git commit -am “titre” (si le fichier a déjà été indexé)
  • 18. ◇ branche : pointeur vers un commit ◇ une bra nche principa le : master ◇ Bra nche coura nte : HEAD ◇ en généra l, une bra nche pa r fonctionna lité en cours de développement Les br anches
  • 19. Les br anches C1 C2 C3 C4 C5 master* fonctionnalité
  • 20. Les br anches et commits 4a7f5a6c478.. 7a4d5f97d8bb.. 0a4d9f8d4dda.. formulaire ajout commentaire ajout commentaire dans base de données affichage des commentaires des publications Arbre de commits dans le git repository master HEAD
  • 21. Pull Request Collaborer avec des Pull Requests Une Pull Request est une fonctionnalité essentielle pour la collaboration sur des projets Git. Elle permet aux collaborateurs de proposer des modifications à une branche principale et de demander leur intégration. Points clés : ◇ Crée un espace pour la discussion et la révision des modifications. ◇ Les autres contributeurs peuvent examiner, commenter et approuver les modifications. ◇ Facilite un flux de travail de révision de code avant la fusion.
  • 22. Gestion des br anches Création et modification de branches git branch : affichage des branches git branch ma_branche : créer la branche ma_branche git checkout ma_branche : déplace HEAD vers ma_branche git checkout -b ma_branche : créer la branche ma_branche et déplace HEAD dessus ou pour simplifier...
  • 23. Gestion des br anches Merge : intégration des modifications d’une branche dans la branche courante git merge ma_branche: merge ma branche dans la branche courante C1 C2 C3 C4 C5 ma ster* bugFix
  • 24. C1 C2 C3 C4 C5 ma ster* bugFix C6 Gestion des br anches Merge : intégration des modifications d’une branche dans la branche courante git merge ma_branche: merge ma branche dans la branche courante
  • 25. Les dépots distants Centraliser les données sur un dépot git !
  • 26. ◇ git directory sur un serveur distant pour le travail collaboratif ◇ Dépots dista nts : ■ github ■ Gitlab Pourquoi gitla b ? ◇ code review, merge request, interfa ce web, CI/CD... Les dépôts distants
  • 27. Voir et ajouter des dépots dis tan ts git clone <url> Cloner un dépot distant : crée un dossier et récupère les fichiers
  • 28. Envoyer sur le dépot dis tan t git push Envoie notre local repository sur le dépot distant On ne touche plus aux commits pushés !
  • 29. Recevoir depuis le dépot dis tan t git pull Récupère les commits sur le dépot distant et met à jour le working directory
  • 30. git Mer ge vs git Rebas e
  • 31. Le schéma de base de git Récupitulatif des commandes w orking directory index git repository git diff git diff --staged git add git commit git checkout -- git reset git reset --hard remote git repository git push git pull git fetch
  • 32. Pour accéder aux dépots sur gitlab, il faut y ajouter sa clé On génère une pa ire de clés : ssh-keygen -t rsa -C "prenom.nom@email.tn" On a ffiche le contenu de la clé publique : cat ~/.ssh/id_rsa.pub On copie tout le contenu de la clé publique sur https://gitla b.com/ > mon profil > clés SSH Authentification par clé
  • 33. git config --global user.name "Prénom Nom" git config --global user.email “prenom.nom@email.tn” En option mais c’est mieux : git config --global color.ui true git config --global color.diff.meta yellow Configur ation minimale
  • 34. La zone de chaos : Stas h Le stash ça sert à : ◇ Sa uvega rder les modifica tions du working directory da ns une zone ta mpon pour rendre le working directory propre. ◇ Possibilité de rejouer les modifica tions sta shées n’importe où ◇ Peut être vu comme une zone de brouillons
  • 35. Stash : les com m an des On stash un ensemble de modifications git stash On récupères les modifica tions sta shées git stash apply Pour plusieurs sta shs : git stash list git stash apply stash@{id} Effa cer le contenu du sta sh git stash clear
  • 36. Git Flow Git Flow est une méthodologie de gestion des branches pour le développement de logiciels. Git Flow facilite la gestion des fonctionnalités, des correctifs et des versions dans un projet logiciel.
  • 37. Pr incipes de Git Flow •Git Flow se compose de plusieurs types de branches clés : • Branches principale (Main) : Représente la version de production sta ble. • Branches de fonctionnalités (Feature) : Pour le développement de nouvelles fonctionna lités. • Branches de publication (Release) : Prépa re une version pour la production. • Branches de correctifs (Hotfix) : Corrige des problèmes de production. •Les développeurs suivent un processus spécifique pour fusionner ces bra nches en utilisa nt des règles strictes.
  • 38. Gestion des Releases dan s Git Les "Releases" (ou versions) dans Git permettent de marquer des points spécifiques dans l'historique du projet logiciel. Pourquoi utiliser les Releases ? •Ma rquer des versions sta bles du logiciel. •Fa ciliter la gestion des mises à jour et des déploiements. •Permettre a ux utilisa teurs de télécha rger des versions spécifiques.
  • 39. Gestion des Releases dan s Git Comment créer une Release : 1.git checkout [branche-cible] : Aller sur la bra nche que vous souha itez ma rquer comme version sta ble. 2.git tag [nom-de-la-release] : Créer un ta g pour la version (pa r exemple, v1.0.0). 3.git push origin [nom-de-la-release] : Pousser le ta g vers le dépôt dista nt.
  • 40. Pour aller plus loin avec git... ◇ git rebase ou git merge ? ◇ balader ses commits avec git cherry-pick ◇ afficher un commit : git show <commit> ◇ Engueulez vos a mis : git blame <fichier> ◇ visua liser l’historique des commits : git log ◇ J’a i tout ca ssé ! git reflog