Bases de Linux et de la ligne de commande

Dans un projet géré avec Git, on a écrit « build/ » dans le fichier .gitignore, mais les modifications de build/out.log, qui avait été validé auparavant, continuent d'apparaître dans git status. Quelle en est la raison ?

  1. A.gitignore ne s'applique qu'aux fichiers qui ne sont pas encore suivis : un fichier suivi doit être retiré du suivi avec git rm --cached
  2. BOn ne peut pas écrire de répertoire dans .gitignore : il faut y écrire un à un les noms des fichiers à ignorer
  3. C.gitignore n'a d'effet sur aucun fichier tant que le fichier .gitignore lui-même n'a pas été ajouté avec git add et validé
Afficher la réponse et l'explication

Réponse : A. .gitignore ne s'applique qu'aux fichiers qui ne sont pas encore suivis : un fichier suivi doit être retiré du suivi avec git rm --cached

.gitignore est un réglage qui exclut les fichiers qui ne sont pas encore suivis (jamais validés ni ajoutés avec git add) de la liste affichée par git status et de ce que git add prend en compte. Un fichier déjà suivi le reste même s'il est écrit dans .gitignore : ses modifications continuent donc d'apparaître. git rm --cached build/out.log arrête le suivi tout en gardant le fichier dans le répertoire de travail, et une fois ce changement validé, l'entrée de .gitignore prend effet. Il vaut mieux écrire dès le départ dans .gitignore les gros fichiers générés, comme les sorties de simulation et les résultats de compilation.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Quelle association entre des répertoires standard de Linux et ce que l'on y place est correcte ?
  2. Quelle description du répertoire /proc de Linux est correcte ?
  3. Le répertoire /home/alice/data existe, et le répertoire courant est /home/alice/work. Quel répertoire s'affiche si l'on exécute « cd ../data », puis « pwd » ?
  4. Dans le répertoire personnel, « ls » n'affiche que notes.txt, alors que « ls -a » affiche « . », « .. », « .bashrc » et « notes.txt ». Quelle explication de ce résultat est correcte ?
  5. Si l'on exécute dans l'ordre les commandes ci-dessus, quel est le résultat des deux dernières commandes cat ?