git config
Dans ce document, nous allons examiner en détail la commande git config
. Nous avons brièvement discuté de l'utilisation de git config
sur notre page Configuration d'un dépôt. La commande git config
est une fonction pratique utilisée pour définir des valeurs de configuration Git au niveau global ou local d'un projet. Ces niveaux de configuration correspondent aux fichiers texte .gitconfig
. L'exécution de git config
modifiera un fichier texte de configuration. Nous allons couvrir les paramètres de configuration fréquents comme l'e-mail, le nom d'utilisateur et l'éditeur. Nous allons discuter des alias Git, qui vous permettent de créer des raccourcis pour les opérations Git fréquentes. Vous familiariser avec git config
et les différents paramètres de configuration Git vous aidera à créer un workflow Git efficace et personnalisé.
Utilisation
Le cas d'usage le plus élémentaire pour git config
consiste à l'appeler avec un nom de configuration, qui affichera la valeur définie à ce nom. Les noms de configuration sont des chaînes délimitées par des points et composées d'une « section » et d'une « clé » en fonction de leur hiérarchie. Par exemple : user.email
git config user.email
Dans cet exemple, « email » est une propriété enfant du bloc de configuration de l'utilisateur. Cela renvoie l'adresse e-mail configurée, le cas échéant, que Git associera à des commits créés en local.
Niveaux de configuration et fichiers associés à git config
Avant d'aborder plus avant l'utilisation de git config
, prenons le temps de parler des niveaux de configuration. La commande git config
peut accepter des arguments de manière à spécifier le niveau de configuration sur lequel agir. Les niveaux de configuration suivants sont disponibles :
Ressource connexe
branche git
DÉCOUVRIR LA SOLUTION
Découvrir Git avec Bitbucket Cloud
--local
Par défaut, git config
écrira à un niveau local si aucune option de configuration n'est transmise. La configuration au niveau local s'applique au contexte dans lequel le dépôt git config
est appelé. Les valeurs de configuration locales sont stockées dans un fichier situé dans le répertoire .git du dépôt : .git/config
-
--global
La configuration au niveau global varie en fonction de l'utilisateur, ce qui signifie qu'elle s'applique à un utilisateur du système d'exploitation. Les valeurs de la configuration globale sont stockées dans un fichier situé dans le répertoire de base d'un utilisateur. ~ /.gitconfig
sur les systèmes Unix et C:\Users\
sous Windows
-
--system
La configuration de niveau système est appliquée à une machine complète. Cela concerne tous les utilisateurs d'un système d'exploitation et tous les dépôts. Le fichier de configuration de niveau système réside dans un fichier gitconfig
extrait du chemin d'accès à la racine du système. Il se trouve dans $(prefix)/etc/gitconfig
sur les systèmes Unix. Concernant les systèmes Windows, ce fichier se trouve dans C:\Documents and Settings\All Users\Application Data\Git\config
sous Windows XP et dans C:\ProgramData\Git\config
sous Windows Vista ou des versions plus récentes.
Par conséquent, l'ordre de priorité des niveaux de configuration est : local, global, système. Autrement dit, pour chercher une valeur de configuration, Git procède du niveau local au niveau système.
Écriture d'une valeur
En nous basant sur ce que nous savons déjà de la commande git config
, voyons un exemple d'écriture de valeur :
git config --global user.email "your_email@example.com"
Cet exemple écrit la valeur your_email@example.com
pour le nom de configuration user.email
. Il utilise le flag --global
pour que cette valeur soit définie pour l'utilisateur actuel du système d'exploitation.
git config editor – core.editor
De nombreuses commandes Git permettront de lancer un éditeur de texte invitant à saisir des données supplémentaires. L'un des exemples d'utilisation de git config
les plus courants concerne la configuration de l'éditeur que Git doit utiliser. Vous trouverez ci-dessous un tableau répertoriant les éditeurs les plus populaires et les commandes git config
associées :
Rédacteur | Commande config |
---|---|
Atom | Commande config |
emacs | Commande config |
nano | Commande config |
vim | Commande config |
Sublime Text (Mac) | Commande config |
Sublime Text (Windows, installation 32 bits) | Commande config |
Sublime Text (Windows, installation 64 bits) | Commande config |
Textmate | Commande config |
Outils de merge
En cas de conflit de merge, Git lancera un « outil de merge ». Par défaut, Git utilise une implémentation interne du programme diff Unix classique. Le git diff interne est une visionneuse de conflit de merge minimale. De nombreuses méthodes de résolution de conflits de merge tierces externes peuvent être utilisées à la place. Pour obtenir un aperçu des différents outils de merge et de la configuration, consultez notre guide des astuces et outils pour résoudre les conflits avec Git.
git config --global merge.tool kdiff3
Sorties colorées
Git prend en charge les sorties de terminal en couleur, ce qui en facilite la lecture. Vous pouvez personnaliser votre sortie Git pour utiliser un thème de couleur personnalisé. La commande git config
est utilisée pour définir ces valeurs de couleur.
color.ui
Il s'agit de la principale variable de couleurs Git. Si vous la définissez sur false, toutes les sorties couleur de terminal associées à Git seront désactivées.
$ git config --global color.ui false
Par défaut, color.ui
est défini sur « auto », ce qui applique des couleurs au flux de sortie immédiat du terminal. Le paramètre « auto » omet la sortie du code couleur si le flux de sortie est redirigé vers un fichier ou acheminé vers un autre processus.
Vous pouvez définir la valeur color.ui
sur always ; le code couleur en sortie s'appliquera alors aussi en cas de redirection du flux de sortie vers des fichiers ou des canaux. Cela peut entraîner des problèmes accidentels, car le canal de réception risque de ne pas s'attendre au code couleur en entrée.
Valeurs de couleur Git
Outre color.ui
, il existe beaucoup de paramètres de couleur granulaires. Comme color.ui
, ces paramètres de couleur peuvent tous être définis sur « false », « auto » ou « always ». Ces paramètres de couleur peuvent également être définis sur une valeur de couleur spécifique. Voici quelques exemples de valeurs de couleur prises en charge :
- normal
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- blanc
Les couleurs peuvent également être spécifiées avec des codes couleur hexadécimaux comme #ff0000 ou de valeurs de code ANSI 256 si votre terminal les prend en charge.
Paramètres de configuration de couleur de Git
1. color.branch
- Configure la couleur de sortie de la commande git branch
2. color.branch.
<slot
>
- Cette valeur est également applicable à la sortie de branche Git. <
slot
> correspond à :- 1. current : la branche actuelle
- 2. local : une branche locale
- 3. remote : une réf de branche distante dans refs/remotes
- 4. upstream : une branche de suivi en amont
- 5. plain : toute autre réf
3. color.diff
- Applique des couleurs aux sorties
git diff
,git log
etgit show
4. color.diff
.<slot
>
- La configuration d'une valeur <
slot
> souscolor.diff
indique à Git sur quelle partie du patch appliquer une couleur.- 1. context : le texte contextuel de diff. Le contexte Git est représenté par les lignes de contenu affichées dans un diff ou un patch pour mettre en évidence les changements.
- 2. plain : un synonyme de contexte
- 3. meta : applique la couleur aux métainformations du diff
- 4. frag : applique la couleur à l'en-tête de bloc ou à une fonction de l'en-tête de bloc
- 5. old : applique une couleur aux lignes supprimées dans la comparaison
- 6. new : colorie les lignes ajoutées du diff
- 7. commit : colore les en-têtes de commit dans le diff
- 8. whitespace : définit une couleur pour une erreur d'espace dans un diff
5. color.decorate
.<slot
>
- Personnalisez la couleur de la sortie
git log --decorate
. Les valeurs <slot
> prises en charge sont :branch
,remoteBranch
,tag
,stash
ouHEAD
. Elles s'appliquent respectivement aux branches locales, aux branches de suivi distantes, aux tags, aux changements stashés et àHEAD
.
6. color.grep
- Applique la couleur à la sortie de git grep.
7. color.grep.
<slot
>
- Également applicable à git grep. La variable <
slot
> indique la partie de la sortie grep à laquelle appliquer la couleur.- 1. context : texte non concordant dans les lignes de contexte
- 2. filename : préfixe du nom de fichier
- 3. function : lignes de noms de fonctions
- 4. linenumber : préfixe de numéro de ligne
- 5. match : texte correspondant
- 6. matchContext : texte correspondant dans les lignes de contexte
- 7. matchSelected : texte concordant dans les lignes sélectionnées
- 8. selected : texte non concordant dans les lignes sélectionnées
- 9. separator : séparateurs entre les champs d'une ligne (:, - et =) et entre des blocs (--)
8. color.interactive
- Cette variable applique de la couleur pour les invites et les affichages interactifs. Exemples :
git add --interactive
etgit clean --interactive
9. color.interactive.<slot
>
- La variable <
slot
> peut être spécifiée pour cibler une « sortie interactive » plus spécifique. Les valeurs <slot
> disponibles sont : prompt, header, help, error. Chacune d'elles agit sur la sortie interactive correspondante.
10. color.pager
- Active ou désactive la sortie en couleurs lorsque la page est utilisée
11. color.showBranch
- Active ou désactive la sortie en couleurs pour la commande git show-branch
12. color.status
- Une valeur booléenne qui active ou désactive la sortie couleur pour l'état Git
13. color.status.<
emplacement
>
Utilisé pour indiquer la couleur personnalisée des éléments git status spécifiés. <emplacement
> prend en charge les valeurs suivantes :
1. header
- Cible le texte d'en-tête de la zone d'état
2. added ou updated
- Les deux fichiers cibles qui sont ajoutés, mais pas commités
3. changed
- Cible les fichiers modifiés, mais pas ajoutés à l'index Git
4. untracked
- Les fichiers cibles ne sont pas trackés par Git
5. branch
- Applique une couleur à la branche courante
6. nobranch
- La couleur de l'avertissement « no branch » s'affiche
7. unmerged
- Colore les fichiers comportant des changements non mergés
Alias
Vous connaissez peut-être déjà le concept des alias à travers la ligne de commande de votre système d'exploitation ; si ce n'est pas le cas, il existe des raccourcis personnalisés qui peuvent être configurés pour représenter des commandes plus longues ou combinées. Les alias vous permettent de gagner du temps et de l'énergie en évitant d'avoir à saisir les commandes fréquemment utilisées. Git propose son propre système d'alias. Un exemple courant d'utilisation des alias Git est la réduction de la commande commit. Les alias Git sont stockés dans les fichiers de configuration Git. Ainsi, vous pouvez utiliser la commande git config
pour configurer des alias.
git config --global alias.ci commit
Cet exemple crée un alias ci pour la commande git commit
. Vous pouvez ensuite appeler git commit
en exécutant git ci
. Les alias peuvent également faire référence à d'autres alias pour créer de puissantes combinaisons.
git config --global alias.amend ci --amend
Dans cet exemple, nous créons un alias amend qui intègre l'alias ci dans un nouvel alias utilisant le flag --amend
.
Formatage et espace
Git dispose de plusieurs fonctionnalités « whitespace » qui peuvent être configurées pour mettre en évidence les erreurs d'espace lors de l'utilisation de git diff. Ces erreurs seront mises en évidence à l'aide de la couleur configurée color.diff.whitespace
.
Les fonctionnalités suivantes sont activées par défaut :
blank-at-eol
met en évidence les espaces blancs orphelins en fin de ligne.space-before-tab
met en évidence un caractère d'espacement apparaissant avant un caractère d'onglet lors d'un retrait d'une ligne.blank-at-eof
met en évidence les lignes vides insérées à la fin d'un fichier
Les fonctionnalités suivantes sont désactivées par défaut :
indent-with-non-tab
met en évidence une ligne en retrait plutôt que des ongletstab-in-indent
met en évidence un retrait de tabulation initial comme une erreur.trailing-space
est un raccourci pour blank-at-eol et blank-at-eof.cr-at-eol met en évidence
un retour chariot en fin de lignetabwidth=
définit le nombre de positions de caractères occupées par une tabulation. La valeur par défaut est 8. Les valeurs autorisées sont 1 à 63.
Résumé
Dans cette article, nous avons présenté l'utilisation de la commande git config
. Nous avons expliqué dans quelle mesure la commande se prêt à l'édition de fichiers git config
bruts sur le système de fichiers. Nous avons exploré les opérations de lecture et d'écriture de base pour les options de configuration. Nous avons examiné les modèles de configuration classiques :
- Comment configurer l'éditeur Git ?
- Comment ignorer des niveaux de configuration
- Comment réinitialiser la configuration par défaut ?
- Comment personnaliser des couleurs Git
Globalement, git config
est un outil d'aide qui fournit un raccourci pour l'édition des fichiers git config
bruts sur le disque. Nous avons couvert les options de personnalisation. Une compréhension basique des options de configuration Git est nécessaire pour configurer un dépôt. Reportez-vous à notre guide pour une démonstration des bases.
Partager cet article
Thème suivant
Lectures recommandées
Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.