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.