💻 Git & GitHub/Gitlab
De l'installation à la collaboration
Apprends à versionner, partager et collaborer sur ton code.
Réalisée par : ECHHIBOU Mohamed, EL GHAZY Ayoub
SOMMAIRE
1. Introduction à Git et GitHub
Concepts fondamentaux et installation
2. Le cycle de vie Git
3. Branches et collaboration
Gestion des branches et workflows
4. Résolution de conflts et bonnes
pratiques
Gestion des conflits et conseils d'experts
5. Outils collaboratifs GitHub
Issues, Projects, Wiki et Releases
6. Atelier complet : mise en pratique pas à
pas
Application des concepts dans un vrai projet
→ À chaque module correspond une séance de travail pratique
Introduction à Git et GitHub
Git
Système de contrôle de version distribué (DVCS)
Outil open-source créé par Linus Torvalds en 2005
Suit toutes les modifications apportées au code
source,documentation..
Permet de fusionner les modifications et de revenir à des
versions antérieures
Chaque développeur dispose d'une copie complète de
l'historique du projet
GitHub
Plateforme de développement de logiciels basée sur le
cloud
Utilise Git pour le contrôle de version
Hébergement de dépôts Git facilitant la collaboration
Permet la gestion de projets pour les individus et les équipes
Devenue une plateforme sociale majeure pour les
communautés de développeurs
Différences clés entre Git et GitHub
Caractéristique Git GitHub
Nature Local En ligne
Fonction Historique du code Collaboration & gestion de projet
Installation et configuration
1. Installer Git
Linux : apt-get install git
macOS : brew install git
Windows : winget install git
2. Créer un compte GitHub
Rendez-vous sur github.com et inscrivez-vous pour un compte
gratuit.
3. Configurer Git localement
Après l'installation, configurez votre nom et votre adresse e-mail :
Commandes à exécuter dans le terminal
git config --global user.name "TonNom"
git config --global user.email "ton@email.com"
Ces commandes configurent votre nom et votre adresse e-mail
globalement pour tous vos dépôts.
Le cycle de vie Git
1. git init
Initialise un nouveau dépôt Git
dans le répertoire courant, créant
un sous-dossier .git
2. git add .
Ajoute tous les fichiers modifiés ou
nouveaux à la zone de staging
.
3. git commit
Enregistre les modifications de la
zone de staging dans le dépôt local
4. git push
Envoie les commits locaux vers le
dépôt distant (GitHub par exemple)
Le processus typique pour enregistrer et partager ton code suit ce cheminement : init add commit push
→ → →
Commandes de Bases Git
Afficher le chemin de fichier
Pwd .
Git init : initialiser notre repository
Creation de nouveau depot git :
Cd: change directory
Pour Changer la direction de notre Output
Git Add/Git status
Ajouter des fichiers au zone d’index / et les
affichées
mKdir: Make Directory
Pour créer un nouveau dossier :
Git Commit
Pour sauvegarder les modifications apportés a notre
fichiers
Concept des branches
Qu'est-ce qu'une branche ?
Les branches sont une fonctionnalité fondamentale de Git,
permettant de créer des copies parallèles et indépendantes
de votre projet.
Chaque branche représente une ligne de
développement distincte
Les modifications effectuées sur une branche
n'affectent pas les autres branches
L'isolation est cruciale pour le travail d'équipe et
l'expérimentation
Pourquoi utiliser des branches ?
Isolation du travail
Développez sans impacter la
branche principale
Expérimentation
sécurisée
Testez sans risquer de casser le
code principal
Exemples de nommage de branches :
main/master
Branche principale
dev/develop
Branche de développement
feature/nom
Nouvelle fonctionnalité
bugfix/nom
Correction de bug
Commandes de gestion des branches
Créer une branche
git branch nom-de-la-branche
Crée une nouvelle branche avec le nom spécifié
Basculer entre branches
git switch nom-de-la-branche
Bascule vers une branche existante (préférable à git checkout)
Créer et basculer
git checkout -b nom-de-la-branche
Crée une nouvelle branche et bascule immédiatement dessus
Pousser vers le dépôt distant
git push -u origin nom-de-la-branche
Pousse la branche locale vers le dépôt distant et configure le
suivi (upstream)
Conseil : Utilisez git branch sans argument pour lister toutes les branches locales
Page 8/22
Comprendre les conflits de fusion
Qu'est-ce qu'un conflit de fusion ?
Un conflit de fusion se produit lorsque Git ne parvient pas à
intégrer automatiquement les modifications de deux branches.
Cela arrive généralement quand :
• Deux développeurs modifient la même ligne de code
• Un fichier est supprimé dans une branche et modifié dans
l'autre
Comment Git détecte les conflits
Git arrête le processus de fusion et marque les fichiers concernés.
Vous devrez résoudre manuellement les conflits avant de pouvoir
finaliser la fusion.
Exemple de marqueurs de conflit
<*<< < < < < < HEAD
// Version A : Modifications de la branche actuelle (HEAD)
=======
// Version B : Modifications de la branche à fusionner
>*> > > > > feature-readme
HEAD représente la version de votre branche actuelle, et feature-
readme (ou le nom de l'autre branche) représente la version de la
branche que vous tentez de fusionner.
Conseil : Les conflits sont normaux et faciles à résoudre quand on les comprend !
Résolution des conflits
1. Identifier les fichiers en conflit
Utilisez la commande git status pour lister les fichiers concernés
2. Éditer manuellement le fichier
Ouvrez le fichier en conflit dans votre éditeur de texte
3. Choisir la bonne version
Décidez quelle version du code vous souhaitez conserver
4. Supprimer les marqueurs
Retirez les lignes <<<<<<< HEAD, ======= et >>>>>> nom-de-la-
branche
5. Stager et committer la résolution
Après correction, utilisez git add . puis git commit -m "Résolution
du conflit"
Conseil
Lorsque Git détecte un conflit, il insère des marqueurs spéciaux dans
le fichier pour indiquer les sections en désaccord.
→ La résolution des conflits est une compétence essentielle pour la collaboration efficace
Bonnes pratiques Git
Commits petits et clairs
Effectuez des commits fréquents avec des messages concis et descriptifs. Chaque commit devrait correspondre à une
modification logique et atomique. Cela rend l'historique plus facile à comprendre et simplifie la résolution des conflits.
Toujours git pull avant git push
Avant de pousser vos modifications, assurez-vous de récupérer les dernières mises à jour du dépôt distant (git pull) pour
intégrer le travail des autres et résoudre les conflts localement avant de les publier.
Supprimer les branches fusionnées
Une fois qu'une branche de fonctionnalité a été fusionnée dans la branche principale et que le travail est validé,
supprimez-la pour garder votre dépôt organisé et éviter la accumulation de branches inutiles.
Outils collaboratifs GitHub
Issues (Suivi des tâches)
Éléments de suivi pour signaler les bugs, proposer des
fonctionnalités et gérer le travail. Peuvent être assignés à
des membres de l'équipe, catégorisés par labels et
regroupés en jalons.
Projects (Tableaux Kanban)
Tableaux de bord personnalisables pour organiser et suivre
le travail. Configurables comme des tableaux Kanban ("To
Do", "Doing", "Done") ou des feuilles de route.
Wiki (Documentation)
Espace dédié à la documentation du projet, idéal pour
héberger la documentation technique, les guides
d'utilisation et les spécifications. Le contenu est versionné
comme le code source.
Releases (Publication de versions)
Outils pour marquer des points stables et livrables dans
l'historique du projet. Associés à des tags Git, ils peuvent
inclure des notes de version détaillées et des fichiers
binaires.
Intégrations
GitHub s'intègre avec des outils externes et des applications de bureau. GitHub Desktop offre une interface graphique pour interagir avec
les dépôts Git sans utiliser la ligne de commande. L'intégration Git de VS Code permet de gérer les opérations Git directement depuis
l'éditeur de code, y compris la résolution des conflts de fusion.
Conclusion - Culture de collaboration
"Git n'est pas qu'un outil technique : c'est une culture de collaboration et de
confiance."
Piliers de la collaboration
Git et GitHub transforment la manière dont les équipes
conçoivent et réalisent des projets.
Valorisation du partage
La gestion de versions permet de valoriser le travail
d'équipe et la transparence.
Confiance par la transparence
La traçabilité des modifications crée un environnement de
confiance au sein des équipes.
Efficiency et innovation
Les outils de collaboration facilitent l'efficacité et stimulent
l'innovation dans les projets.
Merci ! Questions ? @votre-compte-github
Exercice - Créer une Pull Request
1. Créer une nouvelle branche
Utilise la commande suivante dans ton terminal :
git checkout -b ma-branche-readme
2. Modifier le fichier README.md
Ouvre le fichier README.md et ajoute une ligne :
echo "Ce projet est en cours de développement par [Ton
Nom]." >> README.md
3. Stager et commiter tes modifications
Utilise les commandes suivantes :
git add README.md
git commit -m "Ajout de mon nom au README"
4. Pousser ta branche sur GitHub
Utilise la commande suivante :
git push -u origin ma-branche-readme
5. Créer une Pull Request sur GitHub
Rends-toi sur la page de ton dépôt GitHub et :
• GitHub détectera automatiquement ta nouvelle branche
• Clique sur "Compare & pull request"
• Donne un titre clair à ta PR (ex: "Ajout de mon nom au README")
• Clique sur "Create pull request"
.
Exercice - Utiliser les outils GitHub
1 Créer une Issue
Sur votre dépôt GitHub, créez une nouvelle Issue pour une tâche
simple, par exemple "Ajouter une section FAQ au README".
2 Lier l'Issue à une Pull Request
Créez une nouvelle branche, modifiez le README.md pour ajouter une
section FAQ, commitez vos changements, puis ouvrez une Pull
Request. Dans la description de la PR, référencez l'Issue que vous
venez de créer (par exemple, en utilisant #numéro_issue).
3 Ajouter une note Wiki
Accédez à la section Wiki de votre dépôt et ajoutez une page simple
expliquant comment contribuer au projet.
Rappel
GitHub, c'est un écosystème complet de collaboration.
Cet exercise vous permet de découvrir les outils collaboratifs de
GitHub et de comprendre comment ils s'intègrent dans le
workflow de développement.
→ Ces outils vous permettront de gérer efficacement vos projets collaboratifs
Phase 1 - Initialiser un projet existant
1 Ouvrir le projet dans VS Code
Accède au répertoire de ton projet via le terminal ou directement
dans VS Code.
2 Initialiser le dépôt Git
Exécute la commande suivante dans le terminal :
3 Vérifier l'état des fichiers
Utilise la commande git status pour voir les fichiers modifiés et non
suivis.
4 Stager tous les fichiers
Ajoute tous les fichiers modifiés et non suivis à la zone de staging
avec git add .
5 Enregistrer les modifications
Crée un commit initial avec un message descriptif : git commit -m
"Initialisation du projet existant"
terminal
$ git init
Initialized empty Git repository in /chemin/vers/projet/.git/
$ git status
sur working tree dirty: modified: fichier.py
$ git add .
$ git commit -m "Initialisation du projet existant"
[main (root-commit) abc1234] Initialisation du projet existant
1 file changed, 10 insertions(+)
Astuce : Le point (.) après git add indique d'ajouter tous les changements du répertoire courant.
Phase 2 - Connecter à GitHub
1. Créer un dépôt distant
Sur GitHub, créez un nouveau dépôt vide sans ajout de fichier
README.md ni de .gitignore.
2. Lier les dépôts
Connectez votre dépôt local à GitHub en utilisant la commande
suivante (remplacez l'URL par celle de votre dépôt) :
3. Pousser les modifications
Téléchargez vos commits locaux vers la branche main de GitHub :
Commandes à exécuter
git remote add origin
https://github.com/votre-utilisateur/votre-repo.git
# Établit un lien entre votre dépôt local et le dépôt distant
git push -u origin main
# Pousse les commits locaux vers la branche main distante et configure le suivi
Dépôt maintenant publié sur GitHub
La prochaine phase explique le travail quotidien avec Git et GitHub
Phase 3 - Flux de travail quotidien
Le cycle de base du travail quotidien
1. Avant de coder
Toujours faire un git pull pour récupérer les dernières
modifications
git pull origin main
2. Enregistrer ses modifications
Stager et commiter ses changements avec un message clair
git add .
git commit -m "Message clair"
3. Publier ses changements
Pousser les commits locaux vers le dépôt distant
git push origin main
Bonnes pratiques pour les messages de
commit
Courts et précis
Les messages de commit doivent être concis et décrire
l'objectif du changement
Au présent de l'indicatif
Utilisez le présent de l'indicatif (ex: "Ajoute la fonctionnalité X"
plutôt que "J'ai ajouté la fonctionnalité X")
Décrivez le "quoi" et le "pourquoi"
Expliquez non seulement ce qui a été changé, mais aussi
pourquoi ce changement est important
# Exemple de bon message de commit
git commit -m "Corrige le bug d'affichage sur la page d'accueil"
Phase 4 - Gestion avancée des branches
Création des branches fonctionnalités
Conventions de nommage pour les branches :
feature/ pour les nouvelles fonctionnalités
bugfix/ pour les corrections de bugs
git checkout -b feature-readme
Développement et synchronisation
Avant de coder, toujours synchroniser
git pull origin main
Travailler localement sans impact sur main
Stager et commiter régulièrement
git add . && git commit -m "Message clair"
Pull Request et fusion
1 Pousser la branche sur GitHub
git push -u origin feature-readme
2 Créer une Pull Request sur GitHub
Via l'interface ou en ligne de commande
3 Fusionner la PR après validation
Via GitHub Desktop ou ligne de commande
git merge feature-readme
Nettoyage des branches
Supprimer la branche locale après fusion
Supprimer la branche distante pour garder le dépôt propre
git branch -d feature-readme && git push origin --delete feature-
readme
Conseil : Une branche = une fonctionnalité
Phase 5 - Résolution pratique des conflits
1. Détection du conflit
Tentative de fusion avec git merge détecte les conflits
$ git merge feature-filter
Auto-merging data.py
CONFLICT (content): Merge conflict in data.py
Automatic merge failed; fix conflicts and then commit the result.
2. Résolution manuelle
Modifier le fichier en conflit et supprimer les marqueurs
<<<<<<< HEAD
def process_data(data):
return [d.upper() for d in data]
=======
def process_data(data):
return [d.lower() for d in data]
>>>>>>> feature-filter
$ git status
On branch main
Changes to be committed:
modified: data.py
$ git commit -m "Résolution du conflit"
[main 1234567] Résolution du conflit
$ git push
Counting objects: 3, done.
Writing objects: 100% (3/3), done.
3. Finalisation
git add . + git commit -m "Résolution du conflit" + git push
• Stager le fichier résolu
• Créer un commit de fusion
• Pousser la résolution vers le dépôt distant
Conseil : Toujours vérifier l'état des fichiers avant de pousser
Phase 6 - Collaboration en équipe
1. Ajout de collaborateurs
• Ajoutez des collaborateurs via les paramètres du dépôt
GitHub
• Les droits d'accès peuvent être configurés (lecture,
écriture)
• Les collaborateurs reçoivent une notification par email
2. Clonage des dépôts
• Chaque membre de l'équipe clone le dépôt via HTTPS
ou SSH
• Utilisez git clone <URL>
• Le clonage créer une copie locale du dépôt complet
3. Workflow de collaboration
• Chaque développeur crée sa propre branche locale
• Travaillez sur des fonctionnalités isolées dans vos
branches
• Push des branches vers le dépôt distant
• Création de Pull Requests pour fusionner les
changements
4. Bonnes pratiques en équipe
• Toujours faire un git pull avant de commencer à coder
• Utiliser des messages de commit clairs et descriptifs
• Les Pull Requests doivent être revues avant fusion
• Supprimer les branches après fusion pour garder le
dépôt propre
Dev 1 Dev 2 GitHub Dev 1
Phase 7 - Récapitulatif des bonnes pratiques
✅ git pull avant tout travail
Récupérez toujours les dernières modifications du dépôt distant avant de commencer à travailler pour éviter les conflts.
✅ Une branche = une fonctionnalité
Créez une nouvelle branche pour chaque nouvelle fonctionnalité ou correction de bug. Ne jamais travailler directement sur la branche
principale.
✅ Commits clairs et petits
Effectuez des commits fréquents avec des messages concis et descriptifs. Chaque commit devrait correspondre à une modification logique
et atomique.
✅ Toujours via PR (Pull Request)
Proposez vos modifications via une Pull Request pour revue de code avant de les fusionner dans la branche principale.

presentaion Git et github et gitlab.pptx

  • 1.
    💻 Git &GitHub/Gitlab De l'installation à la collaboration Apprends à versionner, partager et collaborer sur ton code. Réalisée par : ECHHIBOU Mohamed, EL GHAZY Ayoub
  • 2.
    SOMMAIRE 1. Introduction àGit et GitHub Concepts fondamentaux et installation 2. Le cycle de vie Git 3. Branches et collaboration Gestion des branches et workflows 4. Résolution de conflts et bonnes pratiques Gestion des conflits et conseils d'experts 5. Outils collaboratifs GitHub Issues, Projects, Wiki et Releases 6. Atelier complet : mise en pratique pas à pas Application des concepts dans un vrai projet → À chaque module correspond une séance de travail pratique
  • 3.
    Introduction à Gitet GitHub Git Système de contrôle de version distribué (DVCS) Outil open-source créé par Linus Torvalds en 2005 Suit toutes les modifications apportées au code source,documentation.. Permet de fusionner les modifications et de revenir à des versions antérieures Chaque développeur dispose d'une copie complète de l'historique du projet GitHub Plateforme de développement de logiciels basée sur le cloud Utilise Git pour le contrôle de version Hébergement de dépôts Git facilitant la collaboration Permet la gestion de projets pour les individus et les équipes Devenue une plateforme sociale majeure pour les communautés de développeurs Différences clés entre Git et GitHub Caractéristique Git GitHub Nature Local En ligne Fonction Historique du code Collaboration & gestion de projet
  • 4.
    Installation et configuration 1.Installer Git Linux : apt-get install git macOS : brew install git Windows : winget install git 2. Créer un compte GitHub Rendez-vous sur github.com et inscrivez-vous pour un compte gratuit. 3. Configurer Git localement Après l'installation, configurez votre nom et votre adresse e-mail : Commandes à exécuter dans le terminal git config --global user.name "TonNom" git config --global user.email "ton@email.com" Ces commandes configurent votre nom et votre adresse e-mail globalement pour tous vos dépôts.
  • 5.
    Le cycle devie Git 1. git init Initialise un nouveau dépôt Git dans le répertoire courant, créant un sous-dossier .git 2. git add . Ajoute tous les fichiers modifiés ou nouveaux à la zone de staging . 3. git commit Enregistre les modifications de la zone de staging dans le dépôt local 4. git push Envoie les commits locaux vers le dépôt distant (GitHub par exemple) Le processus typique pour enregistrer et partager ton code suit ce cheminement : init add commit push → → →
  • 6.
    Commandes de BasesGit Afficher le chemin de fichier Pwd . Git init : initialiser notre repository Creation de nouveau depot git : Cd: change directory Pour Changer la direction de notre Output Git Add/Git status Ajouter des fichiers au zone d’index / et les affichées mKdir: Make Directory Pour créer un nouveau dossier : Git Commit Pour sauvegarder les modifications apportés a notre fichiers
  • 7.
    Concept des branches Qu'est-cequ'une branche ? Les branches sont une fonctionnalité fondamentale de Git, permettant de créer des copies parallèles et indépendantes de votre projet. Chaque branche représente une ligne de développement distincte Les modifications effectuées sur une branche n'affectent pas les autres branches L'isolation est cruciale pour le travail d'équipe et l'expérimentation Pourquoi utiliser des branches ? Isolation du travail Développez sans impacter la branche principale Expérimentation sécurisée Testez sans risquer de casser le code principal Exemples de nommage de branches : main/master Branche principale dev/develop Branche de développement feature/nom Nouvelle fonctionnalité bugfix/nom Correction de bug
  • 8.
    Commandes de gestiondes branches Créer une branche git branch nom-de-la-branche Crée une nouvelle branche avec le nom spécifié Basculer entre branches git switch nom-de-la-branche Bascule vers une branche existante (préférable à git checkout) Créer et basculer git checkout -b nom-de-la-branche Crée une nouvelle branche et bascule immédiatement dessus Pousser vers le dépôt distant git push -u origin nom-de-la-branche Pousse la branche locale vers le dépôt distant et configure le suivi (upstream) Conseil : Utilisez git branch sans argument pour lister toutes les branches locales Page 8/22
  • 9.
    Comprendre les conflitsde fusion Qu'est-ce qu'un conflit de fusion ? Un conflit de fusion se produit lorsque Git ne parvient pas à intégrer automatiquement les modifications de deux branches. Cela arrive généralement quand : • Deux développeurs modifient la même ligne de code • Un fichier est supprimé dans une branche et modifié dans l'autre Comment Git détecte les conflits Git arrête le processus de fusion et marque les fichiers concernés. Vous devrez résoudre manuellement les conflits avant de pouvoir finaliser la fusion. Exemple de marqueurs de conflit <*<< < < < < < HEAD // Version A : Modifications de la branche actuelle (HEAD) ======= // Version B : Modifications de la branche à fusionner >*> > > > > feature-readme HEAD représente la version de votre branche actuelle, et feature- readme (ou le nom de l'autre branche) représente la version de la branche que vous tentez de fusionner. Conseil : Les conflits sont normaux et faciles à résoudre quand on les comprend !
  • 10.
    Résolution des conflits 1.Identifier les fichiers en conflit Utilisez la commande git status pour lister les fichiers concernés 2. Éditer manuellement le fichier Ouvrez le fichier en conflit dans votre éditeur de texte 3. Choisir la bonne version Décidez quelle version du code vous souhaitez conserver 4. Supprimer les marqueurs Retirez les lignes <<<<<<< HEAD, ======= et >>>>>> nom-de-la- branche 5. Stager et committer la résolution Après correction, utilisez git add . puis git commit -m "Résolution du conflit" Conseil Lorsque Git détecte un conflit, il insère des marqueurs spéciaux dans le fichier pour indiquer les sections en désaccord. → La résolution des conflits est une compétence essentielle pour la collaboration efficace
  • 11.
    Bonnes pratiques Git Commitspetits et clairs Effectuez des commits fréquents avec des messages concis et descriptifs. Chaque commit devrait correspondre à une modification logique et atomique. Cela rend l'historique plus facile à comprendre et simplifie la résolution des conflits. Toujours git pull avant git push Avant de pousser vos modifications, assurez-vous de récupérer les dernières mises à jour du dépôt distant (git pull) pour intégrer le travail des autres et résoudre les conflts localement avant de les publier. Supprimer les branches fusionnées Une fois qu'une branche de fonctionnalité a été fusionnée dans la branche principale et que le travail est validé, supprimez-la pour garder votre dépôt organisé et éviter la accumulation de branches inutiles.
  • 12.
    Outils collaboratifs GitHub Issues(Suivi des tâches) Éléments de suivi pour signaler les bugs, proposer des fonctionnalités et gérer le travail. Peuvent être assignés à des membres de l'équipe, catégorisés par labels et regroupés en jalons. Projects (Tableaux Kanban) Tableaux de bord personnalisables pour organiser et suivre le travail. Configurables comme des tableaux Kanban ("To Do", "Doing", "Done") ou des feuilles de route. Wiki (Documentation) Espace dédié à la documentation du projet, idéal pour héberger la documentation technique, les guides d'utilisation et les spécifications. Le contenu est versionné comme le code source. Releases (Publication de versions) Outils pour marquer des points stables et livrables dans l'historique du projet. Associés à des tags Git, ils peuvent inclure des notes de version détaillées et des fichiers binaires. Intégrations GitHub s'intègre avec des outils externes et des applications de bureau. GitHub Desktop offre une interface graphique pour interagir avec les dépôts Git sans utiliser la ligne de commande. L'intégration Git de VS Code permet de gérer les opérations Git directement depuis l'éditeur de code, y compris la résolution des conflts de fusion.
  • 13.
    Conclusion - Culturede collaboration "Git n'est pas qu'un outil technique : c'est une culture de collaboration et de confiance." Piliers de la collaboration Git et GitHub transforment la manière dont les équipes conçoivent et réalisent des projets. Valorisation du partage La gestion de versions permet de valoriser le travail d'équipe et la transparence. Confiance par la transparence La traçabilité des modifications crée un environnement de confiance au sein des équipes. Efficiency et innovation Les outils de collaboration facilitent l'efficacité et stimulent l'innovation dans les projets. Merci ! Questions ? @votre-compte-github
  • 14.
    Exercice - Créerune Pull Request 1. Créer une nouvelle branche Utilise la commande suivante dans ton terminal : git checkout -b ma-branche-readme 2. Modifier le fichier README.md Ouvre le fichier README.md et ajoute une ligne : echo "Ce projet est en cours de développement par [Ton Nom]." >> README.md 3. Stager et commiter tes modifications Utilise les commandes suivantes : git add README.md git commit -m "Ajout de mon nom au README" 4. Pousser ta branche sur GitHub Utilise la commande suivante : git push -u origin ma-branche-readme 5. Créer une Pull Request sur GitHub Rends-toi sur la page de ton dépôt GitHub et : • GitHub détectera automatiquement ta nouvelle branche • Clique sur "Compare & pull request" • Donne un titre clair à ta PR (ex: "Ajout de mon nom au README") • Clique sur "Create pull request" .
  • 15.
    Exercice - Utiliserles outils GitHub 1 Créer une Issue Sur votre dépôt GitHub, créez une nouvelle Issue pour une tâche simple, par exemple "Ajouter une section FAQ au README". 2 Lier l'Issue à une Pull Request Créez une nouvelle branche, modifiez le README.md pour ajouter une section FAQ, commitez vos changements, puis ouvrez une Pull Request. Dans la description de la PR, référencez l'Issue que vous venez de créer (par exemple, en utilisant #numéro_issue). 3 Ajouter une note Wiki Accédez à la section Wiki de votre dépôt et ajoutez une page simple expliquant comment contribuer au projet. Rappel GitHub, c'est un écosystème complet de collaboration. Cet exercise vous permet de découvrir les outils collaboratifs de GitHub et de comprendre comment ils s'intègrent dans le workflow de développement. → Ces outils vous permettront de gérer efficacement vos projets collaboratifs
  • 16.
    Phase 1 -Initialiser un projet existant 1 Ouvrir le projet dans VS Code Accède au répertoire de ton projet via le terminal ou directement dans VS Code. 2 Initialiser le dépôt Git Exécute la commande suivante dans le terminal : 3 Vérifier l'état des fichiers Utilise la commande git status pour voir les fichiers modifiés et non suivis. 4 Stager tous les fichiers Ajoute tous les fichiers modifiés et non suivis à la zone de staging avec git add . 5 Enregistrer les modifications Crée un commit initial avec un message descriptif : git commit -m "Initialisation du projet existant" terminal $ git init Initialized empty Git repository in /chemin/vers/projet/.git/ $ git status sur working tree dirty: modified: fichier.py $ git add . $ git commit -m "Initialisation du projet existant" [main (root-commit) abc1234] Initialisation du projet existant 1 file changed, 10 insertions(+) Astuce : Le point (.) après git add indique d'ajouter tous les changements du répertoire courant.
  • 17.
    Phase 2 -Connecter à GitHub 1. Créer un dépôt distant Sur GitHub, créez un nouveau dépôt vide sans ajout de fichier README.md ni de .gitignore. 2. Lier les dépôts Connectez votre dépôt local à GitHub en utilisant la commande suivante (remplacez l'URL par celle de votre dépôt) : 3. Pousser les modifications Téléchargez vos commits locaux vers la branche main de GitHub : Commandes à exécuter git remote add origin https://github.com/votre-utilisateur/votre-repo.git # Établit un lien entre votre dépôt local et le dépôt distant git push -u origin main # Pousse les commits locaux vers la branche main distante et configure le suivi Dépôt maintenant publié sur GitHub La prochaine phase explique le travail quotidien avec Git et GitHub
  • 18.
    Phase 3 -Flux de travail quotidien Le cycle de base du travail quotidien 1. Avant de coder Toujours faire un git pull pour récupérer les dernières modifications git pull origin main 2. Enregistrer ses modifications Stager et commiter ses changements avec un message clair git add . git commit -m "Message clair" 3. Publier ses changements Pousser les commits locaux vers le dépôt distant git push origin main Bonnes pratiques pour les messages de commit Courts et précis Les messages de commit doivent être concis et décrire l'objectif du changement Au présent de l'indicatif Utilisez le présent de l'indicatif (ex: "Ajoute la fonctionnalité X" plutôt que "J'ai ajouté la fonctionnalité X") Décrivez le "quoi" et le "pourquoi" Expliquez non seulement ce qui a été changé, mais aussi pourquoi ce changement est important # Exemple de bon message de commit git commit -m "Corrige le bug d'affichage sur la page d'accueil"
  • 19.
    Phase 4 -Gestion avancée des branches Création des branches fonctionnalités Conventions de nommage pour les branches : feature/ pour les nouvelles fonctionnalités bugfix/ pour les corrections de bugs git checkout -b feature-readme Développement et synchronisation Avant de coder, toujours synchroniser git pull origin main Travailler localement sans impact sur main Stager et commiter régulièrement git add . && git commit -m "Message clair" Pull Request et fusion 1 Pousser la branche sur GitHub git push -u origin feature-readme 2 Créer une Pull Request sur GitHub Via l'interface ou en ligne de commande 3 Fusionner la PR après validation Via GitHub Desktop ou ligne de commande git merge feature-readme Nettoyage des branches Supprimer la branche locale après fusion Supprimer la branche distante pour garder le dépôt propre git branch -d feature-readme && git push origin --delete feature- readme Conseil : Une branche = une fonctionnalité
  • 20.
    Phase 5 -Résolution pratique des conflits 1. Détection du conflit Tentative de fusion avec git merge détecte les conflits $ git merge feature-filter Auto-merging data.py CONFLICT (content): Merge conflict in data.py Automatic merge failed; fix conflicts and then commit the result. 2. Résolution manuelle Modifier le fichier en conflit et supprimer les marqueurs <<<<<<< HEAD def process_data(data): return [d.upper() for d in data] ======= def process_data(data): return [d.lower() for d in data] >>>>>>> feature-filter $ git status On branch main Changes to be committed: modified: data.py $ git commit -m "Résolution du conflit" [main 1234567] Résolution du conflit $ git push Counting objects: 3, done. Writing objects: 100% (3/3), done. 3. Finalisation git add . + git commit -m "Résolution du conflit" + git push • Stager le fichier résolu • Créer un commit de fusion • Pousser la résolution vers le dépôt distant Conseil : Toujours vérifier l'état des fichiers avant de pousser
  • 21.
    Phase 6 -Collaboration en équipe 1. Ajout de collaborateurs • Ajoutez des collaborateurs via les paramètres du dépôt GitHub • Les droits d'accès peuvent être configurés (lecture, écriture) • Les collaborateurs reçoivent une notification par email 2. Clonage des dépôts • Chaque membre de l'équipe clone le dépôt via HTTPS ou SSH • Utilisez git clone <URL> • Le clonage créer une copie locale du dépôt complet 3. Workflow de collaboration • Chaque développeur crée sa propre branche locale • Travaillez sur des fonctionnalités isolées dans vos branches • Push des branches vers le dépôt distant • Création de Pull Requests pour fusionner les changements 4. Bonnes pratiques en équipe • Toujours faire un git pull avant de commencer à coder • Utiliser des messages de commit clairs et descriptifs • Les Pull Requests doivent être revues avant fusion • Supprimer les branches après fusion pour garder le dépôt propre Dev 1 Dev 2 GitHub Dev 1
  • 22.
    Phase 7 -Récapitulatif des bonnes pratiques ✅ git pull avant tout travail Récupérez toujours les dernières modifications du dépôt distant avant de commencer à travailler pour éviter les conflts. ✅ Une branche = une fonctionnalité Créez une nouvelle branche pour chaque nouvelle fonctionnalité ou correction de bug. Ne jamais travailler directement sur la branche principale. ✅ Commits clairs et petits Effectuez des commits fréquents avec des messages concis et descriptifs. Chaque commit devrait correspondre à une modification logique et atomique. ✅ Toujours via PR (Pull Request) Proposez vos modifications via une Pull Request pour revue de code avant de les fusionner dans la branche principale.

Notes de l'éditeur

  • #3 Le but de git est conserver la version initiale de notre projet et sauvegarder plusieurs versions de notre projet pour quand puisse faire des modification sans endommage le projet initiale
  • #5 _*git init*_ pour initialiser notre dépôt git dans mon dossier _*git add*_ pour ajouter les fichier modifie ou nouveaux _*git commit*_ c'est l'ensemble des modification apportées a un fichier comme l'ajout la suppression dans notre code chaque commit a un id unique appelle SHA-1(sha one) un message associé au ce commit information sur le développeur la date de création git push pour la publication online
  • #6 Ls : une commande git sers a lister les données de notre repertoire
  • #7 branche est sucession de commit si on a un probleme dans la derniere commit et on veut aller a la commit initiale on fait git checkout sha one de commit qu'on veut et si on veut revenir a l'état initiale on fait git checkout main (main est le tag reference qui nous permet d’aller vers le tete d’historique ) ( head est le tag affiché au commit actuelle de notre projet si on revient a un ancien commit le tag head est affichée a coté de ce commit )
  • #9 Ils arrivent quand deux développeurs modifient la même partie du code. Git ne sait pas quelle version choisir, donc il nous demande de décider. Il insère des marqueurs comme ceux-ci pour nous montrer les différences.
  • #10 D’abord, git status pour identifier les fichiers problématiques. Ensuite, on ouvre le fichier dans VS Code, on supprime les marqueurs et on garde la bonne version. Puis on fait git add et git commit pour valider la résolution. C’est une compétence essentielle pour travailler en équipe.
  • #11 Enfin, voici quelques bonnes pratiques pour bien utiliser Git : Faites des commits petits et avec des messages clairs. Toujours tirer les dernières modifications avec git pull avant de pousser. Et nettoyez vos branches une fois fusionnées pour éviter l’encombrement. Ces habitudes rendent la collaboration plus fluide et professionnelle.
  • #12 GitHub n'est pas seulement un hébergeur de code, c'est une plateforme complète de collaboration. Et aussi il existe de nombreuses intégrations, comme GitHub Desktop pour ceux qui préfèrent l'interface graphique.
  • #13 En conclusion, Git et GitHub représentent bien plus que des outils techniques. C'est toute une culture de collaboration qui valorise le partage et la transparence. Grâce à la traçabilité des modifications, on bâtit un climat de confiance dans les équipes. La possibilité de travailler en parallèle sur des branches stimule l'innovation. Finalement, ces outils transforment fondamentalement la façon dont on conçoit et réalise des projets en équipe.