Comment configurer .gitignore globalement

GIT

Contexte

Lorsque nous travaillons sur un projet web, il y a toujours des fichiers et dossiers qu’il ne faut pas ajouter au dépôt GIT (ex: vendor, node_modules…).

L’utilisation du fichier .gitignore à la racine du projet permet de les ignorer facilement.

Problématique

Cependant, il y a des fichiers et dossiers que nous devons ignorer systématiquement et qu’il sera fastidieux d’ajouter dans chaque fichier .gitignore de tous les projets.

Par exemple, les fichiers ou dossiers générés par votre IDE ou votre système d’exploitation ne doivent pas être ajoutés dans GIT.

Solution

Il est possible de configurer GIT pour le projet en cours ou globalement. C’est cette dernière configuration qui nous intéresse aujourd’hui.

Durée estimée : 10 minutes
Comment ignorer certains fichiers ou dossiers dans tous vos projets avec une seule configuration GIT ? Oublier d’exclure des fichiers générés par l’IDE ou des outils est courant.

Outil nécessaire

Ajouter un gitignore global

Ajouter le fichier « ~/.gitignore_global » à la clé de configuration « core.excludesfile » de la configuration globale de GIT.

$ git config --global --add core.excludesfile ~/.gitignore_global

Information

Sur Windows, utiliser GitBash pour exécuter les commandes.

Ajouter les fichiers et dossier à ignorer

Ouvrir le fichier « ~/.gitignore_global » (ou créé-le s’il n’existe pas) dans votre éditeur de texte (pas Microsoft Wort ou autre éditeur de textes lourds) favori puis ajouter les éléments que vous souhaitez ignorer.

Voici une liste non exhaustive des éléments à ignorer :

### PhpStorm ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
ide-twig.json
.idea/

# Tools
.vagrant/

### OSX ###
.DS_Store
.AppleDouble
.LSOverride

# Icon must end with two r
Icon

# Thumbnails
._*

# Files that might appear on external disk
.Spotlight-V100
.Trashes

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### NotepadPP ###
# Notepad++ backups #
*.bak

### SublimeText ###
# cache files for sublime text
*.tmlanguage.cache
*.tmPreferences.cache
*.stTheme.cache

# workspace files are user-specific
*.sublime-workspace

# project files should be checked into the repository, unless a significant
# proportion of contributors will probably not be using SublimeText
# *.sublime-project

# sftp configuration file
sftp-config.json

### Vim ###
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
*.un~
Session.vim
.netrwhist
*~

### Windows ###
# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

### Eclipse ###
*.pydevproject
.metadata
.gradle

# Eclipse Core
.project

À vous de personnaliser le fichier pour qu’il corresponde à vos besoins et ainsi vous éviter une configuration répétitive de GIT pour chaque projet.

Conclusion

Avec l’article sur la configuration d’un hook pour le style code, et cet article, vous n’avez plus besoin de réaliser des « commits » de suppression de fichier externe à votre projet.