Mémo Git : configuration

Mémo Git : déclaration des variables de configuration, les fichiers .gitattributes et .gitignore.

Configuration de Git

Pour toutes les variables l'option --global que j'utilise ci-dessous sert à définir une valeur pour tous les projets de l'utilisateur.

Ne mettez aucune option si vous souhaitez définir des valeurs spécifiques au projet ouvert.

Utilisez au contraire l'option --system pour définir des valeurs par défaut pour tous les utilisateurs de la machine utilisée.

Définir son nom :

git config --global user.name "Prénom Nom"

Définir son email :

git config --global user.email votre@email.com

Définir votre éditeur de texte :

git config --global core.editor nom_de_votre_editeur

Définir l'outil de différences (utilisé notamment lors les conflits de fusion) :

git config --global merge.tool nom_de_votre_outil

Connaître les paramètres enregistrés :

git config --list

Connaître la valeur d'un paramètre :

git config nom_du_paramètre

Création d'un alias :

git config --global alias.co checkout

Dans l'exemple précédent le fait de saisir git co reviendra à lancer git checkout.

Définir un modèle de message pour les commits :

git config --global commit.template adresse_locale_du_fichier_du_modèle

Définir la pagination des messages générés par Git :

git config --global core.pager valeur

La valeur est less par défaut mais peut être fixée à more. Une chaîne vide supprimera la pagination.

Définir sa clé GPG pour signer les étiquettes annotées :

git config --global user.signingkey Id_de_votre_clé

Régler le problème des retours chariot ajoutés sous les machines MS Windows :

git config --global core.autocrlf true

Pour corriger les erreurs des fichiers reçus d'un contributeur travailler sur MS Windows quand vous travaillez sur Mac ou Linux :

git config --global core.autocrlf input

Fichier .gitattributes

Ce fichier est présent à la racine du projet ou dans .git/info/attributes si il n'est pas spécifique au projet.

Définir un type de fichier comme binaire (donc ignoré par diff).

*.extension_fichier -crlf -diff

Ou (version récente de Git) :

*.extension_fichier binary

Définir un filtre pour comparer des fichiers .doc (par exemple) entre eux :

*.doc diff=word

Il faut alors définir le filtre word dans votre configuration à utiliser à fin de convertir les fichiers en simple texte :

git config diff.word.textconv strings

Ignorer certains fichiers lors de l'export d'un dépôt. Ici les fichiers d'un répertoire :

répertoire_à_ignorer/ export-ignore

Ignorer un fichier lors des fusions :

nom_du_fichier merge=ours

Fichier .gitignore

Pour que certains fichiers ou répertoires soient ignorés (et donc non indiqués par git status), il faut créer dans le dossier de votre projet un fichier .gitignore indiquant les éléments à ne pas prendre en compte.

Exemple de fichier .gitignore

# ignorer tous les fichiers .txt :
*.txt
# sauf le fichier suivant :
!infos.txt
# ignorer uniquement le fichier ignorez-moi.html à la racine du projet
/ignorez-moi.html
# ignorer tous les fichiers du répertoire cache/
cache/
# ignorer JS/script.js, mais pas JS/exemple/script.js
JS/*.js
# ignorer tous les fichiers .js du répertoire exemple/
exemple/**/*.js

Note : cet article fait partie d'un mémo des commandes Git dont la création s'est inspirée du livre "Pro Git" de Scott Chacon, publié sous licence Creative Commons Non Commercial Share Alike 3.0. Les illustrations sont également issues de ce livre. Le mémo en lui-même (hors illustration) est publié sous Licence Art Libre. Par ailleurs, n'hésitez pas à me signaler toute erreur / ambiguïté qui se serait cachée dans cet article.