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 de configuration .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

Pour suivre ce tutoriel, vous avez besoin d’installer l’outils suivant sur votre ordinateur.

Ajouter un gitignore global

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

Cette étape, consiste à enregistrer dans la configuration globale de GIT le chemin d’accès au fichier de configuration nommé « .gitignore_global ». Dans l’exemple de commande suivante, il sera placer dans le dossier de l’utilisateur actuel.

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

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.

Dans cette étape, vous allez ajouter une liste de fichier à ignorer pour tous les dépôts de code source pour l’utilisateur actuel de l’ordinateur. A l’étape précédente, vous avez défini l’emplacement du fichier et son nom.

Sur Linux, vous pouvez utiliser un éditeur de texte graphique tel que gEdit, Geany, Sublime Text, Brackets… ou en ligne de commande tel que vim, vi, nano, pico, emacs.

Sur Windows, Notepad++ est conseillé. Mais vous pouvez utiliser Sublime Text et sur Windows 10, Notepad peux être utilisé uniquement en modification du fichier.

Sur macOs, Textedit ou BBEdit ou Sublime Texte peuvent être utilisé.

Une fois votre éditeur ouvert sur un fichier vide, ajouter les fichiers à ignorer. Un par ligne. Il est possible d’utiliser le joker « * » (multiplier) pour remplacer n’importe quel caractère dans le nom du fichier.

Pour finir, enregistrer le fichier dans votre dossier utilisateur avec le nom « .gitignore_global ».

Sur Windows Notepad n’autorise pas l’enregistrement d’un nouveau fichier avec uniquement une extension de fichier. Pour contourner le problème utiliser un autre éditeur de texte.

Pour vous aider, voici une liste non exhaustive des éléments que vous pouvez ajouter à votre fichier :

### 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.