Choix du client utilisé pendant le cours
Comme vous allez le voir, Git est un systĂšme de contrĂŽle de version.
Il repose sur des protocoles standardisĂ©s (comme HTTP, SSH ou son propre protocole Git) pour assurer la communication entre dĂ©pĂŽts locaux et distants. Cette standardisation permet Ă Git dâĂȘtre compatible avec de nombreux outils et interfaces, quâil sâagisse de la ligne de commande, dâenvironnements de dĂ©veloppement intĂ©grĂ©s (IDE), ou dâapplications graphiques comme GitHub Desktop, Git Kraken, ou les plugins Visual Studio Code.
Tout au long de ce cours, vous utiliserez exclusivement le terminal pour mieux comprendre les commandes Git et leur fonctionnement en profondeur.
Une fois que vous maĂźtrisez un concept et les commandes associĂ©es, vous ĂȘtes libres de passer Ă lâoutil graphique de votre choix, comme Git Extensions, le plugin Git pour Visual Studio Code, ou Git Kraken.
Pour ce chapitre, vous pouvez pratiquer dans l’environnement de votre choix, Ă condition d’avoir git
installé et accessible via un terminal.
Nous vous encourageons vivement, tout au long de ce chapitre et des suivants, à explorer différents environnements pour découvrir les diverses possibilités, ainsi que les similitudes et les différences.
Voici quelques exemples d’environnements que vous pouvez utiliser :
- Votre machine personnelle avec Git installé
- Tout environnement du SSPCloud, comme Cloudshell, VSCode, ou RStudio
Feuille de commandes utiles pour Git : https://education.github.com/git-cheat-sheet-education.pdf
Pour accéder à un récapitulatif rapide des commandes Git les plus courantes, vous pouvez utiliser la commande suivante dans un terminal :
git --help
Pourquoi utiliser git ?
Vous avez besoin de Git chaque fois :
- vous collaborez avec d’autres
- vous souhaitez garder une trace de votre travail au fil du temps
- Vous désirez récupérer du code et y contribuer
- Vous écrivez du code
Git est un systĂšme de contrĂŽle de version dĂ©centralisĂ© (Distributed Version Control System - DVCS) qui aide les dĂ©veloppeurs Ă gĂ©rer leurs projets logiciels. Il permet de conserver toutes les versions du code, ce qui est utile lors de collaborations, car il simplifie la gestion des contributions de chacun et prĂ©vient les conflits. Git garde Ă©galement un historique complet des modifications, essentiel pour suivre l’Ă©volution d’un projet. GrĂące Ă des demandes de tirage (pull requests) et Ă des branches, il facilite l’intĂ©gration des modifications de maniĂšre organisĂ©e. Les dĂ©veloppeurs peuvent revenir Ă des versions antĂ©rieures pour comprendre des fonctionnalitĂ©s ou des problĂšmes, tout en synchronisant leur travail local avec les environnements distants.
Documentation officiel, Ă propos de la gestion de version : https://git-scm.com/book/fr/v2/D%c3%a9marrage-rapide-%c3%80-propos-de-la-gestion-de-version
Utilisation de git en local
Initialiser un projet Git
Pour commencer un projet Git, il suffit d’exĂ©cuter la commande suivante :
git init
Cette commande crée un sous-dossier nommé .git
dans le rĂ©pertoire courant. Ce dossier contient tous les fichiers nĂ©cessaires au suivi des modifications, y compris l’historique des versions, les rĂ©fĂ©rences et les configurations du dĂ©pĂŽt.
Lorsque l’on rĂ©cupĂšre un dĂ©pĂŽt depuis Internet, on obtient Ă©galement le dossier .git
dans notre répertoire local. La présence de ce dossier indique à Git que nous sommes dans un dépÎt Git.
Notez que le dossier
.git
est masquĂ© dans votre explorateur de fichiers (comme tous les dossiers dont le nom commence par un point). Cependant, il est possible de le parcourir et de le modifier, comme nous le verrons dans la section đ Automatisation des contrĂŽles sur une base de code versionnĂ©e.
Consultez la documentation officielle : Git Init.
Gestion des versions
CrĂ©ation d’une version
Dans un dĂ©pĂŽt Git, vous avez la possibilitĂ© de crĂ©er de nouvelles versions de votre projet en spĂ©cifiant les fichiers que vous souhaitez inclure dans cette version. Ce processus est souvent appelĂ© “staging”.
Objectif du Staging
L’objectif principal de cette fonctionnalitĂ© est de vous permettre de travailler localement sans vous prĂ©occuper du versionnage. Lorsque vous ĂȘtes prĂȘt Ă crĂ©er une nouvelle version, vous pouvez regrouper vos fichiers de maniĂšre logique et cohĂ©rente.
Exemple :
Imaginons que vous développiez une application de gestion de bibliothÚque, avec deux fonctionnalités principales :
- Ajout de nouveaux livres à la base de données.
- Suppression de livres de la base de données.
AprÚs avoir apporté des modifications à votre code, il est préférable de créer une version pour chaque ajout fonctionnel. Par conséquent :
- D’abord, vous enregistrez les changements liĂ©s Ă l’ajout de livres.
- Ensuite, vous traitez les modifications apportées à la suppression de livres.
Ajout de Fichiers au Staging
Pour préparer les fichiers en vue de la prochaine version, vous utilisez la commande git add
. Par exemple :
git add nom_du_fichier
Ou, pour ajouter tous les fichiers modifiés dans le répertoire courant :
git add .
Git utilise ce qu’on appelle un index, qui sert de transition entre votre rĂ©pertoire de travail (working directory) et la version finale (commit).
Pour vĂ©rifier l’Ă©tat de vos fichiers, vous pouvez utiliser la commande :
git status
Qu’est-ce qu’un Commit ?
Un commit représente un ensemble de modifications (ajouts, modifications, suppressions) sauvegardées dans votre dépÎt Git.
Lorsque tous les fichiers ajoutĂ©s sont prĂȘts et constituent un ensemble cohĂ©rent pour une nouvelle version, vous pouvez crĂ©er un commit avec la commande :
git commit [options]
Exemple :
git commit -m "Ajout de la fonctionnalité d'ajout de livres"
Un commit contient, en plus des modifications apportĂ©es, plusieurs mĂ©tadonnĂ©es, notamment la date, l’auteur (nom et adresse e-mail) et un message descriptif.
Ces métadonnées sont déclaratives, ce qui signifie que vous pouvez anti-dater ou post-dater un commit si vous le souhaitez.
Consultez la documentation officielle : Git Commit.
Naviger dans les versions
Git offre plusieurs commandes pour gĂ©rer l’historique des versions et naviguer entre les diffĂ©rentes modifications.
Annuler des Modifications
La commande git restore
est utilisĂ©e pour annuler les modifications dans votre rĂ©pertoire de travail ou pour restaurer des fichiers Ă partir d’un commit prĂ©cĂ©dent.
Exemple :
Si vous avez modifié un fichier, mais que vous souhaitez annuler ces modifications avant de faire un commit, vous pouvez utiliser :
git restore nom_du_fichier
Pour restaurer un fichier Ă partir d’un commit spĂ©cifique, vous pouvez indiquer l’identifiant du commit :
git restore --source <commit_id> nom_du_fichier
Cette commande est utile lorsque vous avez besoin de revenir Ă une version antĂ©rieure d’un fichier sans affecter les autres modifications dans votre branche actuelle.
Consultez la documentation officielle : Git Restore.
La commande git reset
est utilisĂ©e pour annuler des modifications dans un dĂ©pĂŽt Git. Elle peut modifier l’historique des commits, l’index (la zone de staging) et le rĂ©pertoire de travail, selon les options que tu utilises avec cette commande.
Types de git reset
git reset --soft <commit>
:
DĂ©place le HEAD de la branche courante vers le commit spĂ©cifiĂ©, en gardant les modifications dans l’index.git reset --soft HEAD~1
git reset --mixed <commit>
(par défaut) :
DĂ©place le HEAD vers le commit spĂ©cifiĂ©, mais retire les modifications de l’index tout en les gardant dans le rĂ©pertoire de travail.git reset HEAD~1
git reset --hard <commit>
:
DĂ©place le HEAD vers le commit spĂ©cifiĂ© et rĂ©initialise l’index et le rĂ©pertoire de travail pour correspondre Ă ce commit, entraĂźnant la perte de toutes les modifications non engagĂ©es.git reset --hard HEAD~1
Consultez la documentation officielle : Git Reset.
Explorer l’Historique des Commits
La commande git log
vous permet d’afficher l’historique des commits dans votre dĂ©pĂŽt. Cela vous aide Ă comprendre les changements qui ont Ă©tĂ© apportĂ©s au fil du temps.
Exemple :
Pour afficher l’historique des commits, vous pouvez simplement exĂ©cuter :
git log
Cela affichera une liste des commits avec leurs identifiants, auteurs, dates et messages associĂ©s. Si vous souhaitez afficher l’historique de maniĂšre plus concise, vous pouvez utiliser des options comme --oneline
:
git log --oneline
Cela montre chaque commit sur une seule ligne, ce qui peut ĂȘtre plus lisible pour une vue d’ensemble rapide.
Consultez la documentation officielle : Git Log.
GitFlow : Branches et Fonctionnalités
L’objectif de GitFlow est de dĂ©terminer un mode de fonctionnement en projet qui permet de dĂ©couper le travail en diffĂ©rents degrĂ©s de maturitĂ© :
- Version stable de l’application : La derniĂšre version livrĂ©e, qui est fonctionnelle et prĂȘte Ă ĂȘtre utilisĂ©e.
- Version en cours de dĂ©veloppement : Une version qui peut fonctionner, mais qui nĂ©cessite probablement des ajustements avant l’intĂ©gration finale, ou qui attend l’achĂšvement de certaines fonctionnalitĂ©s.
- Versions temporaires : Branches destinĂ©es Ă des fonctionnalitĂ©s en cours de dĂ©veloppement, comme la correction de bogues ou l’ajout de nouveaux endpoints.
Pour gérer ces différentes versions, il est essentiel de comprendre le concept de branches dans Git.
Branches
Une branche dans Git reprĂ©sente une ligne du temps indĂ©pendante, partant d’un commit ou d’une version prĂ©cise. Elle permet de travailler sur des tĂąches spĂ©cifiques sans affecter le reste du projet et facilite le travail en Ă©quipe sur des fonctionnalitĂ©s distinctes.
Commandes pour gérer les branches :
Pour créer une nouvelle branche :
# Créer une branche appelée nouvelle-branche
git branch nouvelle-branche
# Supprimer la branche nouvelle-branche en local
git branch -d nouvelle-branche
# Lister toutes les branches disponibles
git branch
Pour se déplacer sur une branche existante :
# Si nouvelle-branche existe
git switch nouvelle-branche
# Créer une branche nouvelle-branche et s'y déplacer
git switch -b nouvelle-branche
Consultez la documentation officielle : Git Branch Consultez la documentation officielle : Git Switch
Intégration des Changements
Pour intĂ©grer des modifications issues d’une autre branche dans la branche courante, vous pouvez utiliser la commande git merge
.
Exemple :
Pour intégrer les changements de la branche nouvelle-branche
dans la banche branche-stable
:
git switch branch_stable
git merge nouvelle_branche
Cela fusionnera les modifications de nouvelle-branche
dans la branche branche-stable
.
Pour en savoir plus sur la gestion des conflits lors d’une fusion, consultez cette documentation sur les conflits Git.
Consultez la documentation officielle : Git Merge
La commande git rebase
est une autre maniĂšre d’intĂ©grer des changements. Au lieu de crĂ©er un commit de fusion, elle dĂ©place la base de la branche actuelle pour inclure les commits d’une autre branche. Cela rend l’historique plus linĂ©aire.
Exemple :
Pour intégrer les changements de la branche nouvelle-branche
dans la banche branche-stable
:
git switch nouvelle_branche
git rebase branch_stable
git switch branch_stable
git merge nouvelle_branche
Consultez la documentation officielle : Git Rebase
Branches de Fonctionnalités et Branches Stables
Dans le cadre de GitFlow, on distingue plusieurs types de branches :
Branches Stables
- master/main : La branche de référence, contenant la version la plus stable du projet.
- release-1, release-2, … : Branches qui intĂšgrent des changements depuis le dĂ©veloppement.
- develop : Branche contenant le travail en cours, sanctuarisée et stabilisée.
Branches de Fonctionnalités
Hotfix : Souvent nommées
hotfix-**
, ces branches permettent d’apporter des modifications urgentes et critiques sur les versions stables, par exemple, pour corriger des bogues de sĂ©curitĂ©.Feature : Souvent nommĂ©es
topic-**
, ces branches sont utilisées pour le développement de nouvelles fonctionnalités.
Workflow Classique
Le workflow classique suit ces étapes :
- Un développement est effectué sur une branche de fonctionnalité.
- La branche est soumise Ă une revue par l’Ă©quipe du projet.
- Une fois approuvé, les changements sont intégrés à la derniÚre version de la branche
develop
.
Pour approfondir vos connaissances sur les workflows classiques de travail avec Git, vous pouvez consulter ce petit guide.
Utilisation avec un dépot distant
Git, gitlab, github …
Avec la rĂ©ussite de Git, des outils appelĂ©es Forges Logicielles sont apparues. Elles permettent de proposer l’hĂ©bergement du code source d’application publiques et privĂ©es de maniĂšre gratuite et offrent d’autres services de gestion ainsi que des interfaces clients apprĂ©ciables.
On distingue 2 catégories de forges :
- les forges “As A Service” qui sont mises Ă disposition par des entreprises tierces et dont les donnĂ©es sont hĂ©bergĂ©es chez ces fournisseurs
- les forges “On premise” qui sont hĂ©bergĂ©es directement dans les organisations qui les utilisent.
Exemples de forges “As A Service” :
Github.com est un des leaders du marchĂ©, hĂ©bergeant une grande partie du code open source et des grands projets ouverts. Github a Ă©tĂ© rachetĂ© par Microsoft en 2018 pour 7.5 milliards de dollars. Le code source de github n’est pas public.
Gitlab.com est un concurrent trĂšs actif. Le code qui sous-tend gitlab.com est en trĂšs grande partie libre : https://gitlab.com/gitlab-org/gitlab
Important :
gitlab.com
est une installation particuliĂšre du logiciel gitlab sur les serveurs de l’entreprise gitlab. Vous rencontrerez, dans votre carriĂšre, d’autres installations du logiciel gitlab sur d’autres serveurs (cf “On premise”). Attention donc Ă ne pas confondre le servicegitlab.com
, le logiciel gitlab et les différentes installations de gitlab que vous rencontrerez.Bitbucket.org : moins utilisé, il appartient à Atlassian (connu pour son outil de gestion de projet / ticket
Jira
)
Exemples de forges “On premise” :
- Gitlab sspcloud
- Gitlab INSEE : accessible uniquement depuis le réseau INSEE
- FramaGIT
De nos jours, la plupart des forges “on premise” sont des installations du logiciel gitlab mais il existe des alternatives. Citons par exemple https://gogs.io/ et https://fusionforge.org/
DépÎts centraux
Les dépÎt centraux se présentent comme des dépÎt locaux hébergés sur des serveurs distants.
Il s’agit lĂ de versions “canoniques” qui peuvent ĂȘtre rĂ©cupĂ©rĂ©es par des dĂ©veloppeurs habilitĂ©s, ou par tout le monde. On parle alors de dĂ©pĂŽt public (et non pas forcĂ©ment d’opensource).
On peut intĂ©ragir avec eux a l’aide de commandes dĂ©diĂ©es qui permettent de mettre Ă jour un dĂ©pĂŽt, local ou distant, par rapport Ă un autre.
Cloner un DépÎt
La commande git clone
est utilisĂ©e pour crĂ©er une copie locale d’un dĂ©pĂŽt distant. Cela vous permet de commencer Ă travailler sur un projet existant sans avoir Ă le crĂ©er manuellement.
Exemple :
Pour cloner un dépÎt, exécutez la commande suivante :
git clone <url_du_dépÎt>
Cela crĂ©era un nouveau dossier avec le nom du dĂ©pĂŽt et tĂ©lĂ©chargera tout le contenu du dĂ©pĂŽt distant, y compris l’historique des commits.
Vous récupérer le code source ainsi que le dossier
.git
Consultez la documentation officielle : Git Clone.
Pour aller plus loin, Authentification : ssh/https. Cela vous permez de notament récupéré des projet privé dont vous avez des droits ou propager vos modifications sans vous authentifier à chaque fois.
Gérer les DépÎts Distants
La commande git remote
permet de gĂ©rer les connexions aux dĂ©pĂŽts distants. Vous pouvez l’utiliser pour ajouter, modifier ou supprimer des rĂ©fĂ©rences Ă des dĂ©pĂŽts distants.
Exemple :
# Ajouter un nouveau dépÎt distant :
git remote add <nom> <url_du_dépÎt>
# Lister les dépÎts distants configurés
git remote -v
<nom>
est souventorigin
, qui est la convention pour le dépÎt distant principal.
Consultez la documentation officielle : Git Remote.
Récupérer les Modifications
La commande git pull
est utilisĂ©e pour rĂ©cupĂ©rer et intĂ©grer les modifications d’un dĂ©pĂŽt distant dans votre branche locale.
Exemple :
Pour rĂ©cupĂ©rer les modifications de la branche principale d’un dĂ©pĂŽt distant :
git pull origin main
Cela mettra à jour votre branche locale avec les derniers changements du dépÎt distant.
Consultez la documentation officielle : Git Pull.
Pour aller plus loin, RĂ©cuperer des changements sans les intĂ©grer, Ă l’aide de la commande git fetch
Envoyer des Modifications
La commande git push
est utilisĂ©e pour envoyer vos modifications locales vers un dĂ©pĂŽt distant (dĂ©clarĂ© avec la commande remote). Cela permet de partager vos travaux avec d’autres dĂ©veloppeurs et de mettre Ă jour le dĂ©pĂŽt central.
Exemple :
# Envoyer vos changements (commits) Ă votre origin
git push
# Envoyer votre code a votre origin et déclarer une branche origin/branch
git push --set-upstream origin branch
# Envoyer votre code (commits) a votre origin en pushant la branche main
git push -u origin main
Cela mettra à jour le dépÎt distant avec les commits que vous avez effectués localement.
Consultez la documentation officielle : Git Push.
L’Ă©cosystĂšme Git : Issues, Pull Requests et Forks
Git s’inscrit dans un Ă©cosystĂšme Ă©tendu grĂące Ă des plateformes comme GitHub et GitLab. Ces outils ont enrichi Git avec des fonctionnalitĂ©s supplĂ©mentaires pour une organisation collaborative plus structurĂ©e Ă l’Ă©chelle macro-projet. Voici un aperçu des concepts clĂ©s : issues, pull requests et forks.
Glossaire des Concepts
Issues : Gestion des ProblĂšmes et des Demandes
Une issue est un ticket utilisĂ© pour signaler un bug, proposer une nouvelle fonctionnalitĂ©, ou discuter dâune amĂ©lioration. Les issues servent de point de dĂ©part pour organiser le travail collaboratif. Elles incluent souvent des descriptions dĂ©taillĂ©es, des captures dâĂ©cran, et des discussions entre contributeurs.
Cas d’usage :
- Reporter un bug trouvé dans le projet.
- Suggérer une nouvelle fonctionnalité.
- Suivre les tĂąches Ă accomplir dans un projet.
Outils associés : GitHub, GitLab, Jira.
Exemple dâissue sur GitHub : CrĂ©er une Issue GitHub.
Pull Requests (ou Merge Requests) : Proposition de Fusion de Code
Une pull request est une demande formelle pour intĂ©grer les modifications effectuĂ©es sur une branche vers une autre (souvent vers la branche principale). Elle est accompagnĂ©e dâun processus de revue de code oĂč dâautres dĂ©veloppeurs vĂ©rifient, commentent, et demandent des modifications avant la fusion finale.
Ătapes typiques :
- Créer une branche dédiée pour votre travail.
- Faire des commits pour sauvegarder vos modifications.
- Soumettre une pull request pour demander la fusion de cette branche.
- Collaborer via des commentaires ou des suggestions dans la pull request.
- Fusionner la branche une fois approuvée.
Cas d’usage :
- Ajouter une fonctionnalité.
- Corriger un bug signalé via une issue.
- Améliorer la documentation.
Outils associés :
- GitHub : Créer une Pull Request.
- GitLab : Créer une Merge Request.
Forks : Copier un DépÎt Git pour le Personnaliser
Un fork est une copie indĂ©pendante dâun dĂ©pĂŽt Git, gĂ©nĂ©ralement utilisĂ©e pour travailler sur un projet sans modifier lâoriginal. Il permet Ă des dĂ©veloppeurs externes de contribuer Ă des projets oĂč ils n’ont pas les droits d’Ă©criture ou de rĂ©cupĂ©rer un projet pour en crĂ©er une version diffĂ©rente.
Cas d’usage :
- Contribution Ă un projet open-source :
- Forker un projet public.
- Travailler sur la copie dans votre espace personnel.
- Soumettre une pull request pour proposer vos modifications.
- Sauvegarde et Ă©volution d’un projet :
- Lorsquâun projet open-source est abandonnĂ© ou passe en privĂ©, un fork permet Ă une communautĂ© ou Ă une personne de continuer son dĂ©veloppement.
- Contribution Ă un projet open-source :
Outils associés :
Qu’est-ce qu’il est utile de versionner ?
Lorsqu’on commence Ă versionner un projet avec Git, une question essentielle se pose : quels fichiers doit-on inclure dans le contrĂŽle de version ? Voici quelques explications pour guider vos choix et Ă©viter les erreurs courantes.
Comment fonctionne Git ?
Git fonctionne en sauvegardant des diffĂ©rences (deltas) entre les versions successives des fichiers. Cela signifie qu’il ne stocke pas une copie complĂšte de chaque version, mais uniquement les modifications apportĂ©es. Ce mĂ©canisme est particuliĂšrement efficace pour les fichiers texte, mais il peut rencontrer des limitations avec d’autres types de fichiers.
Type de fichiers et versionning
Les fichiers texte
Pour les fichiers texte (comme les fichiers .md
, .txt
, .py
, etc.), Git excelle dans la gestion du versionnage.
Pourquoi ?
- Les différences entre versions se limitent souvent à quelques lignes modifiées, ce qui rend le stockage trÚs léger.
- MĂȘme pour des dĂ©pĂŽts volumineux, l’empreinte mĂ©moire reste faible, car seules les modifications (en kilooctets) sont sauvegardĂ©es.
Exemple de fichiers Ă versionner :
- Code source.
- Documentation en texte brut ou formatée (Markdown, LaTeX, etc.).
Les fichiers binaires et compressés
Pour des fichiers comme ceux de la suite Office ou LibreOffice, qui sont des fichiers compressés, le mécanisme différentiel de Git est moins efficace.
Pourquoi ?
- Ces fichiers ne permettent pas de détecter les modifications ligne par ligne, car toute modification peut entraßner un changement global du fichier.
- Chaque nouvelle version de ces fichiers est sauvegardée en entier, ce qui alourdit rapidement le dépÎt.
Conseils :
- Si possible, privilégiez des formats texte équivalents (par exemple,
.csv
au lieu d’Excel pour les donnĂ©es). - Ăvitez de versionner des fichiers binaires volumineux, sauf si c’est absolument nĂ©cessaire.
- Si possible, privilégiez des formats texte équivalents (par exemple,
Les fichiers générés automatiquement
Les fichiers générés automatiquement par des outils ou lors de la compilation (comme les fichiers de log ou les dossiers target
en Java) n’ont pas besoin d’ĂȘtre versionnĂ©s.
Pourquoi ?
- Ces fichiers peuvent ĂȘtre recréés Ă tout moment Ă partir des sources ou des outils de compilation.
- Versionner ces fichiers encombre inutilement le dépÎt et crée des conflits inutiles.
Exemple de fichiers Ă ignorer :
- Dossiers de build (
target/
,dist/
). - Fichiers de log (
*.log
). - Fichiers temporaires ou de sauvegarde (
*.tmp
,*.bak
).
- Dossiers de build (
Les fichiers contenant des données sensibles
Attention : Une fois qu’un fichier est versionnĂ©, il reste accessible dans l’historique du dĂ©pĂŽt, mĂȘme s’il est supprimĂ© dans des commits ultĂ©rieurs.
Exemples de fichiers Ă ne pas versionner :
- Mots de passe ou clĂ©s dâAPI.
- Informations personnelles ou confidentielles.
Bonne pratique :
- Stockez les secrets dans des fichiers spécifiques (comme
.env
) qui ne sont pas versionnés. - Ajoutez ces fichiers à votre
.gitignore
pour éviter les erreurs.
- Stockez les secrets dans des fichiers spécifiques (comme
Pour supprimer dĂ©finitivement un fichier sensible de lâhistorique Git : git-filter-repo ou BFG Repo Cleaner.
Mettre en place des rĂšgles de versionnage avec .gitignore
Git permet de contrÎler les fichiers inclus ou exclus du versionnage grùce à un fichier spécial nommé .gitignore
, placé à la racine du dépÎt.
Fonctionnement du fichier .gitignore
Chaque ligne contient une expression qui correspond Ă un ou plusieurs fichiers ou dossiers Ă ignorer.
Exemple de contenu :
# Ignorer tous les fichiers temporaires *.tmp # Ignorer le dossier build /build/ # Ignorer les fichiers de configuration locaux .env
Outil utile :
Pour générer un fichier.gitignore
adapté à votre technologie ou langage, utilisez gitignore.io.
Consultez la documentation officielle pour plus d’informations : Git Ignore.
Travaux Pratiques
Créer un compte GitHub :
Si vous n’avez pas encore de compte, suivez ce guide pour en crĂ©er un, puis connectez-vous.Forker le repository du TP Git :
Rendez-vous sur le repository du TP Git et forkez-le dans votre espace personnel (namespace). Un lien dans le cours explique comment réaliser un fork sur GitHub.Cloner votre fork en local :
Récupérez une copie de votre fork sur votre machine locale.Lister les commits :
Affichez les commits présents dans la branchemain
de votre repository.Modifier le README :
Ajoutez une mention indiquant qu’il s’agit de votre fork du projet, directement via l’interface de GitHub.Ajouter un fichier
.gitignore
:
Créez un fichier.gitignore
dans votre repository. N’oubliez pas de synchroniser les modifications apportĂ©es au README avec votre dĂ©pĂŽt local.CrĂ©er une branche pour une nouvelle fonctionnalitĂ© :
CrĂ©ez une nouvelle branche dĂ©diĂ©e Ă l’ajout d’une fonctionnalitĂ© permettant de supprimer un contact.ImplĂ©menter la fonctionnalitĂ© :
- Ajoutez une option “3” au menu pour permettre Ă l’utilisateur de supprimer un contact en renseignant son nom.
- GĂ©rez les cas oĂč aucun contact ne correspond au nom saisi.
Créer une nouvelle version :
Validez vos modifications en créant un nouveau commit.Synchroniser avec le dépÎt distant :
Poussez vos modifications sur votre fork distant.Fusionner votre branche avec
main
:
Intégrez les changements de votre branche dans la branchemain
.(Bonus) :
Envoyez votre code sur le GitLab du SSP Lab : GitLab SSP Cloud.