Aller au contenu

git config

Description

La commande git config est un utilitaire en ligne de commande qui définit des variables de configuration. Elle contrôle l’apparence et le fonctionnement de Git.

gitconfig

Les niveaux et fichiers de git config

La commande git config accepte des arguments pour préciser à quel niveau de configuration opérer. Lors de la recherche d’une valeur de configuration, Git privilégie l’ordre suivant (du plus faible au plus élevé) :

  1. --system – La configuration au niveau système inclut tous les utilisateurs d’un système d’exploitation ainsi que tous les dépôts. Le fichier de configuration au niveau système se trouve dans le répertoire d’installation de Git.

git config system level

bash
(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions
  1. --global – La configuration au niveau global s’applique à l’utilisateur actuel du système d’exploitation. Les valeurs de configuration globales sont stockées dans un fichier du répertoire personnel de l’utilisateur.

git config global level

bash
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows
  1. --local – Lorsqu’aucune option de configuration n’est fournie, git config écrit par défaut au niveau local. Le répertoire .git du dépôt contient un fichier qui stocke les valeurs de configuration locales.

git config local level

bash
.git/config

Remarque : les paramètres locaux remplacent les paramètres globaux, qui eux-mêmes remplacent les paramètres système.

Comment écrire une valeur

Ici, l’exemple écrit la valeur "[email protected]" dans le nom de configuration user.email. Le niveau global est utilisé afin de définir la valeur pour l’utilisateur actuel du système d’exploitation.

git config set user

bash
git config --global user.email "[email protected]"

Utilisation de git config

L’utilisation de base de git config consiste à récupérer une valeur de configuration en précisant son nom. Les noms de configuration se composent d’une section et d’une key séparées par un point.

git config user email

bash
git config user.email

Ici, email est une propriété enfant du bloc de configuration user.

Vous pouvez également lister tous les paramètres actifs avec git config --list, supprimer un paramètre avec git config --unset <key>, ou ouvrir le fichier de configuration dans votre éditeur par défaut avec git config --edit. Pour les workflows modernes, git config --show-origin affiche où chaque paramètre est défini, et git config --get-all <key> récupère toutes les valeurs d’une clé donnée.

L’éditeur git config - core.editor

Lorsque votre identité est configurée, Git utilise l’éditeur par défaut de votre système, qui est Vi ou Vim. git config permet de définir quel éditeur Git utilisera. Voici la liste des éditeurs les plus courants avec les commandes git config :

EditorConfig Command
Atomgit config --global core.editor "atom --wait"
emacsgit config --global core.editor "emacs"
nanogit config --global core.editor "nano -w"
vimgit config --global core.editor "vim"
Sublime Text (Mac)git config --global core.editor "subl -w"
Sublime Text (Win, 32-bit install)git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"
Sublime Text (Win, 64-bit install)git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"
Textmategit config --global core.editor "mate -w"

Sorties colorées

Git prend en charge les couleurs, ce qui simplifie le processus de lecture de la sortie Git. Vous pouvez utiliser vos propres couleurs pour personnaliser la sortie. Pour définir des valeurs de couleur, la commande git config est utilisée.

color.ui

Git colore automatiquement la plupart de ses sorties, mais il existe aussi une variable principale si vous souhaitez définir une autre couleur. Pour désactiver toute sortie colorée de Git dans le terminal, vous pouvez faire ce qui suit :

git config set color.ui

bash
git config --global color.ui false

Le réglage par défaut de color.ui est auto, ce qui applique les couleurs directement à la sortie du terminal. Il omet les codes de couleur lorsque la sortie est redirigée vers un pipe ou un fichier.

Vous pouvez également définir la valeur color.ui sur always. Cela applique les codes de couleur lorsque la sortie est redirigée vers des fichiers ou des pipes. Cela peut poser problème, car le pipe récepteur peut ne pas s’attendre à une entrée colorée.

Valeurs de couleur Git

En plus de color.ui, il existe aussi d’autres paramètres de couleur qui peuvent être définis sur false, auto ou always. Ils peuvent avoir une valeur de couleur spécifique : normal, black, red, green, yellow, blue, magenta, cyan, white. Les couleurs peuvent être spécifiées sous forme de codes hexadécimaux comme #1c87c9 ou de valeurs de couleur ANSI 256 si le terminal le prend en charge.

Paramètres de configuration des couleurs Git

color.branchDéfinit la couleur de sortie de la commande git branch.
color.branch.<slot>Est pertinent pour la sortie de git branch. <slot> est l’un des éléments suivants : 1. branche actuelle 2. branche locale 3. branche distante 4. branche amont 5. simple (toute autre référence)
color.diffDonne des couleurs à la sortie de git diff, git log et git show
color.diff.<slot>Indique à git quelle partie du patch (context, plain, meta, frag, old, new, commit, whitespace) doit utiliser une couleur spécifique.
color.decorate.<slot>Ajuste la couleur de la sortie de git log --decorate. Les valeurs <slot> prises en charge sont branch, remote Branch, tag, stash ou HEAD. Elles s’appliquent respectivement aux branches locales, aux branches de suivi distantes, aux tags, aux modifications mises de côté et à HEAD.
color.grepDonne de la couleur à la sortie de git grep.
color.grep.<slot>Peut être appliqué à git grep. La variable <slot> précise à quelle partie de la sortie grep (context, filename, function, line number, match, match Context, match Selected, selected, separator) la couleur doit être appliquée.
color.interactiveDonne de la couleur aux invites et affichages interactifs (par ex. git add --interactive, git clean --interactive)
color.interactive.<slot>Cible une « sortie interactive ». Les valeurs <slot> disponibles sont : prompt, header, help, error.
color.pagerActive ou désactive la sortie colorée lorsque le pager est utilisé.
color.showBranchActive ou désactive la sortie colorée pour la commande git show branch.
color.statusActive ou désactive la sortie colorée pour Git status.
color.status.<slot>Spécifie une couleur personnalisée pour les éléments définis de git status. <slot> prend en charge les valeurs suivantes : header, added or updated, changed, untracked, branch, nobranch, unmerged.

Les alias git config

Les alias sont des raccourcis personnalisés qui indiquent quelle commande sera développée en commandes plus longues ou combinées. Il n’est pas nécessaire de saisir les commandes fréquemment utilisées grâce aux alias. Git possède son propre système d’alias, principalement utilisé pour raccourcir la commande git commit. La commande git config est utilisée pour configurer les alias.

git config set alias

bash
git config --global alias.ci commit

Les alias peuvent créer des combinaisons très puissantes avec d’autres alias.

git config aliases

bash
git config --global alias.amend ci --amend

Dans l’exemple ci-dessus, un alias amend compose l’alias ci en un nouvel alias qui utilise --amend

Formatage et espaces blancs

FeatureDescriptionGit Config Command
indent-with-non-tabMet en évidence une ligne commençant par des espaces au lieu de tabulations.git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol"
tab-in-indentMet en évidence une tabulation initiale dans l’indentation comme une erreur.(Combined with other rules)
blank-at-eofMet en évidence les lignes vides insérées à la fin d’un fichier.(Combined with other rules)
trailing-spaceMet en évidence les espaces blancs de fin de ligne.(Combined with other rules)
cr-at-eolMet en évidence un retour chariot à la fin de la ligne.(Combined with other rules)
tabwidth=<n>Spécifie combien de positions de caractères une tabulation occupe. La valeur par défaut est 8. Valeurs autorisées : 1-63.git config --global core.whitespace "tabwidth=<n>"

Practice

Which of the following is a correct use of the 'git config' command?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.