Comment ingorer des fichiers localement et globalement dans un projet git ?

Picture

Si vous êtes un utilisateur de git vous n’êtes pas sans savoir qu’il y a des fichiers et répertoires que vous ne souhaitez pas voir apparaitre dans les modifications de vos sources.

Par exemple les répertoires de vos dépendances comme :

  • vendor si vous utilisez composer en PHP,
  • ou node_module si vous utilisez npm en JS

Mais saviez-vous qu’il y a plusieurs niveaux pour exclure des fichiers ? Je vous propose de revoir ces bases dans ce tutoriel 😃

Pour info, ce tutoriel utilise l’éditeur GNU nano comme logiciel de traitement de texte, mais libre à vous de choisir votre éditeur préféré.

Exclure des fichiers pour un seul référentiel

Dans le cas où vous souhaitez ignorer des fichiers et répertoires d’un projet dans chacun de ses clones, utiliser un fichier .gitignore à la racine de votre projet. Il suffira de l’ajouter aux sources de son dépôt pour que la configuration soit appliquée.

  1. Ouvrer Git Bash, puis exécuter les commandes suivantes :
    cd <chemin_de_mon_projet>
    nano .gitingore
    
    Remplacer <chemin_de_mon_projet> par le chemin réel de votre projet.
  2. Ajouter votre configuration,
  3. Enregistrer votre configuration (cf .Notes).

Exclure des fichier locaux sans créer ou modifier un fichier .gitignore

Dans le cas où vous souhaitez ignorer des fichiers et répertoires d’un projet sans créer ou modifier fichier .gitignore, utiliser le fichier exclude dans le répertoire .git/info de votre projet.

  1. Ouvrer Git Bash, puis exécuter les commandes suivantes :
    cd <chemin_de_mon_projet>
    nano .git/info/exclude
    
    Remplacer <chemin_de_mon_projet> par le chemin réel de votre projet.
  2. Dans votre terminale vous verrez apparaître le contenu suivant :
    # git ls-files --others --exclude-from=.git/info/exclude
    # Lines that start with '#' are comments.
    # For a project mostly in C, the following would be a good set of
    # exclude patterns (uncomment them if you want to use them):
    # *.[oa]
    # *~
    
  3. Ajouter votre configuration à la suite de ces lignes,
  4. Enregistrer votre configuration (cf .Notes).

Exclure des fichiers pour tous les référentiels de votre ordinateur

Dans le cas où vous souhaitez ignorer des fichiers et répertoires dans tous vos projets, utiliser la configuration global excludesFile. Cette configuration est très pratique quand plusieurs développeurs travaillent sur plusieurs projets et qu’ils utilisent des IDE ou outils différents.

  1. Ouvrer Git Bash, puis exécuter la commande suivante :
    nano ~/.gitignore_global
    Cette commande créée un fichier .gitignore_global dans votre répertoire utilisateur
  2. Ajouter votre configuration,
  3. Enregistrer votre configuration (cf .Notes).
  4. Exécuter la commande suivante pour ajouter le fichier .gitignore_global à votre configuration git :
    git config --global core.excludesfile ~/.gitignore_global
    

Vous pouvez retrouver cette configuration dans le fichier .gitconfig à la racine de votre répertoire utilisateur.

nano ~/.gitconfig

Apperçu de votre configuration git :

[core]
    # Sous Windows
    excludesfile = C:/Users/<nom_utilisateur>/.gitignore_global
    # Sous Linux
    excludesfile = /home/<nom_utilisateur>/.gitignore_global

Conclusion

Pour résumer :

  • .gitignore s’applique pour chaque clone d’un référentiel,
  • .git/info/exclude s’applique pour une instance d’un référentiel sans créer ou modifier un fichier .gitignore
  • excludesFile s’applique sur tous référentiel sur votre ordinateur.

Ce qu’il faut retenir :

  • Le fichier .gitignore n’a pas pour rôle de maintenir la liste de fichiers et répertoires générés par des IDE et outils,
  • Si vous travailliez sur plusieurs projets avec plusieurs IDE et outils, utiliser excludesFile pour mutualiser les fichiers et répertoires à ignorer.

Notes

  • Documentation officielle de .gitignore,
  • Créer des configurations exhaustifs à votre système d’exploitation, IDE ou outils :
  • Pour enregistrer sous nano appuyer successivement sur les touches suivantes :
    • Ctrl + X pour sauvegarder,
    • o si vous êtes sur Linux ou Y si vous êtes sur Windows pour confirmer la sauvegarde.
    • Entrée pour valider le nom du fichier d’enregistrement.
Scroll to top