Les variables d'environnement jouent un rôle crucial dans le fonctionnement de Git, le système de gestion de version décentralisé. Comprendre ces variables est essentiel pour optimiser l'expérience utilisateur et personnaliser le comportement de Git selon nos besoins.
Comportement Global
GIT_EXEC_PATH
La variable GIT_EXEC_PATH définit le chemin où Git recherche ses sous-programmes tels que git-commit et git-diff. Vérifiez le réglage actuel avec git --exec-path
.
HOME
Bien que HOME ne soit généralement pas personnalisable, il indique le répertoire où Git recherche le fichier de configuration global. Pour une installation Git portable, vous pouvez remplacer HOME dans le profil shell.
PREFIX
Similaire à HOME mais pour la configuration système, PREFIX pointe vers le fichier de configuration global du système.
GIT_CONFIG_NOSYSTEM
Lorsque défini, GIT_CONFIG_NOSYSTEM désactive l'utilisation du fichier de configuration système, utile si la configuration système interfère avec les commandes.
GIT_PAGER
Contrôle le programme utilisé pour afficher une sortie multipage en ligne de commande. S'il n'est pas défini, PAGER sera utilisé comme solution de secours.
GIT_EDITOR
GIT_EDITOR est l'éditeur que Git lance lorsque l'utilisateur doit éditer du texte, comme un message de commit. S'il n'est pas défini, EDITOR sera utilisé.
Emplacements du Dépôt
GIT_DIR
Indique l'emplacement du dossier .git. Si non spécifié, Git remonte l'arborescence jusqu'à ~ ou / à la recherche d'un dossier .git à chaque étape.
GIT_CEILING_DIRECTORIES
Contrôle le comportement de recherche d'un dossier .git. Utile si vous accédez à des répertoires lents à charger.
GIT_WORK_TREE
L'emplacement du répertoire de travail pour un référentiel non nu. Si --git-dir ou GIT_DIR est spécifié sans --work-tree, le répertoire de travail actuel est considéré comme le niveau supérieur.
GIT_INDEX_FILE
Chemin vers le fichier d'index (uniquement pour les référentiels non nu).
GIT_OBJECT_DIRECTORY
Spécifie l'emplacement du répertoire habituellement situé à .git/objects.
GIT_ALTERNATE_OBJECT_DIRECTORIES
Liste séparée par des deux-points indiquant où Git doit vérifier les objets s'ils ne sont pas dans GIT_OBJECT_DIRECTORY.
Pathspecs
GIT_GLOB_PATHSPECS et GIT_NOGLOB_PATHSPECS
Contrôlent le comportement par défaut des wildcards dans les pathspecs. GIT_GLOB_PATHSPECS en tant que 1 signifie que les caractères génériques agissent comme tels, et GIT_NOGLOB_PATHSPECS en tant que 1 signifie qu'ils correspondent littéralement.
GIT_LITERAL_PATHSPECS
Désactive les comportements ci-dessus, aucun caractère générique ne fonctionne.
GIT_ICASE_PATHSPECS
Définit tous les pathspecs pour fonctionner de manière insensible à la casse.
Engagement
La création finale d'un objet de commit Git est généralement effectuée par git-commit-tree, utilisant des variables d'environnement telles que GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME et GIT_COMMITTER_EMAIL pour définir les champs de l'auteur et du committer.
Réseau
Git utilise la bibliothèque curl pour les opérations réseau. GIT_CURL_VERBOSE active les messages générés par cette bibliothèque. GIT_SSL_NO_VERIFY désactive la vérification des certificats SSL.
Diffusion et Fusion
GIT_DIFF_OPTS contrôle le nombre de lignes de contexte affichées dans une commande git diff. GIT_EXTERNAL_DIFF est utilisé comme substitution de la valeur de configuration diff.external.
Débogage
Pour comprendre pleinement le comportement de Git, activez les traces avec GIT_TRACE, GIT_TRACE_PACK_ACCESS, GIT_TRACE_PACKET et GIT_TRACE_PERFORMANCE.
Divers
GIT_SSH spécifie un programme invoqué au lieu de ssh lors de la connexion à un hôte SSH. GIT_SSH_COMMAND définit la commande SSH utilisée lors de la connexion à un hôte SSH.
GIT_ASKPASS est une substitution pour la valeur de configuration core.askpass, invoquée lorsque Git a besoin de demander à l'utilisateur des informations d'identification.
GIT_NAMESPACE contrôle l'accès aux refs namespace. GIT_FLUSH force Git à utiliser une E/S non tamponnée lors de l'écriture incrémentielle sur stdout.
GIT_REFLOG_ACTION permet de spécifier le texte descriptif écrit dans le reflog.
Comprendre ces variables d'environnement Git offre un contrôle précis sur le comportement de Git. Utilisez-les judicieusement pour personnaliser votre expérience Git et optimiser vos flux de travail.