Préparer les fichiers du site fil rouge
Objectif : Organiser les fichiers représentant les pages du site et exclure les réglages propres à la machine.
Un dépôt de site peut contenir des fichiers utiles à tous les contributeurs et des traces qui ne concernent que votre ordinateur. Si vous ne les distinguez pas, vous risquez de publier des réglages personnels ou de masquer un fichier nécessaire au site. Vous allez vérifier l’arborescence du projet et définir des exclusions adaptées, sans toucher à la note provisoire de `README.md`.
À ce stade, le dépôt `suivi-site` contient les fichiers du site et a été synchronisé après la récupération des changements de `origin`. La note provisoire non commitée dans `README.md` est toujours présente localement. Comme vous l’avez vu dans la leçon sur l’état du dépôt, vérifiez les indications de Git avant toute opération qui pourrait modifier ou préparer des fichiers.
Vérifier les fichiers du projet
Le site fil rouge repose sur trois fichiers : `index.html` pour la page, `style.css` pour sa présentation et `README.md` pour documenter les étapes Git du projet. Le répertoire `.git` conserve les données du dépôt ; vous ne le manipulez pas comme un fichier du site. Le fichier `.gitignore` que vous allez créer complète cette arborescence : il indique à Git quels chemins locaux ne doivent pas être proposés comme contenu du projet.
Depuis le dossier `suivi-site`, listez les fichiers puis demandez l’état du dépôt. La sortie exacte dépend de votre système et du contenu de la note provisoire, mais `README.md` doit apparaître comme modifié. N’essayez pas de le rétablir : cette modification est indépendante de la création des règles d’exclusion.
cd suivi-site
ls
git status --shortindex.html
README.md
style.css
M README.mdDéfinir des règles d’exclusion
Créez un fichier nommé exactement `.gitignore` à la racine de `suivi-site`. Une règle par ligne indique un nom ou un motif que Git doit ignorer dans le dépôt. Pour ce projet, excluez les fichiers système macOS et Windows ainsi que le répertoire de réglages local de Visual Studio Code. Ces réglages peuvent contenir des préférences propres à votre machine ; le site n’en a pas besoin pour fonctionner.
.DS_Store
Thumbs.db
.vscode/Chaque ligne est un motif : `.DS_Store` et `Thumbs.db` ciblent des fichiers portant ces noms, tandis que `.vscode/` cible le répertoire correspondant. Ces règles n’effacent rien de votre ordinateur et ne retirent pas du dépôt un fichier déjà suivi ; elles empêchent Git de signaler comme candidats les fichiers non suivis qui correspondent aux motifs. Ne placez pas dans le dépôt votre configuration Git globale ni d’autres fichiers personnels.
Contrôler le résultat
Relancez `git status --short`. `.gitignore` doit être indiqué comme non suivi, et la note de `README.md` doit toujours apparaître comme modification locale. Les trois fichiers du site ne doivent pas être ignorés. Pour vérifier une règle sans créer de fichier de test, utilisez `git check-ignore -v` avec un chemin qui correspond à un motif ; la commande vous indique le fichier de règles et la ligne concernés.
git status --short
git check-ignore -v .DS_Store M README.md
?? .gitignore
.gitignore:1:.DS_Store .DS_StoreLe résultat de `git check-ignore` confirme ici que `.DS_Store` est couvert par la première règle. Il est normal que ce chemin n’existe pas encore : la commande vérifie le motif, elle ne crée pas le fichier. À ce stade, ne préparez pas de fichiers et ne créez pas de commit ; vous avez seulement organisé les exclusions, tandis que la note provisoire reste intacte.
À retenir
- Le projet comprend `index.html`, `style.css` et `README.md` ; `.gitignore` précise les exclusions locales.
- Les motifs de `.gitignore` écartent des fichiers non suivis sans les supprimer de votre ordinateur.
- Des règles trop larges peuvent masquer des fichiers nécessaires au site : contrôlez toujours `git status`.
- La note provisoire de `README.md` reste locale et ne doit pas être confondue avec l’ajout de `.gitignore`.
Dans la prochaine leçon, vous découperez le travail du site en commits correspondant chacun à une intention.