Git Credential Manager (GCM) can be configured using multiple different mechanisms. In order of preference, those mechanisms are:
- Environment variables
- Standard Git configuration files
- Repository/local configuration (
.git/config
) - User/global configuration (
$HOME/.gitconfig
or%HOME%\.gitconfig
) - Installation/system configuration (
etc/gitconfig
)
- Repository/local configuration (
- Enterprise system administrator defaults
- Compiled default values
This model largely matches what Git itself supports, namely environment variables that take precedence over Git configuration files.
The addition of the enterprise system administrator defaults enables those administrators to configure many GCM settings using familiar MDM tooling, rather than having to modify the Git installation configuration files.
We believe the user should always be at liberty to configure Git and GCM exactly as they wish. By preferring environment variables and Git configuration files over system admin values, these only act as default values that can always be overridden by the user in the usual ways.
Default setting values come from the Windows Registry, specifically the following keys:
HKEY_LOCAL_MACHINE\SOFTWARE\GitCredentialManager\Configuration
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\GitCredentialManager\Configuration
GCM is a 32-bit executable on Windows. When running on a 64-bit installation of Windows registry access is transparently redirected to the
WOW6432Node
node.
By using the Windows Registry, system administrators can use Group Policy to easily set defaults for GCM's settings.
The names and possible values of all settings under this key are the same as those of the Git configuration settings.
The type of each registry key can be either REG_SZ
(string) or REG_DWORD
(integer).
Default settings values come from macOS's preferences system. Configuration profiles can be deployed to devices using a compatible Mobile Device Management (MDM) solution.
Configuration for Git Credential Manager must take the form of a dictionary, set
for the domain git-credential-manager
under the key configuration
. For
example:
defaults write git-credential-manager configuration -dict-add <key> <value>
..where <key>
is the name of the settings from the Git configuration
reference, and <value>
is the desired value.
All values in the configuration
dictionary must be strings. For boolean values
use true
or false
, and for integer values use the number in string form.
To read the current configuration:
$ defaults read git-credential-manager configuration
{
<key1> = <value1>;
...
<keyN> = <valueN>;
}
Default configuration setting stores has not been implemented.