Ignorer des fichiers

De base, les fichiers non-trackés apparaissent quand on utilise git-status(1). Cela est un problème quand on travaille à plusieurs car il n’y a aucun intérêt à synchroniser des fichiers compilés ou des fichiers de configuration d’un IDE. Par exemple,

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    modified:   main.c
#    new file:   file.c
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   main.c
#    modified:   Makefile
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    main.o
#    file.o
#    a.out

On peut choisir de les ignorer en les ajoutant dans dans le fichier .gitignore. En effet, on peut s’imaginer que dans un gros projet, la partie Untracked files peut devenir assez imposante et on ne sait plus distinguer les fichiers qu’il faut penser à ajouter de ceux qu’il faut ignorer une fois de plus. La syntaxe est très simple, on spécifie un fichier par ligne, on utilise un * pour spécifier n’importe quelle chaine de charactères, les commentaires commencent par un # comme en Bash et si la ligne commence par un !, on demande de ne pas ignorer ce fichier à l’intérieur du dossier même si un .gitignore d’un dossier parent dit le contraire. Dans notre exemple, .gitignore aura le contenu suivant

# Object files
*.o
# Executable
a.out
Please log in to see this exercise