Elegant Git aims to standardize how a work environment should be configured. It operates 3 levels of configurations (basics, standards, and aliases - see below) which can be applied to a Git repository (local configuration) and (or) to a Git installation globally (global configuration).
The local configuration applies by running
git elegant acquire-repository and configures current Git
repository by using
git config --local <key> <value>.
The global configuration invokes by
git elegant acquire-git and uses
git config --global <key> <value> for Git configuration.
If you've applied a global configuration, there is no sense to repeat some options for a local one. That's why the following markers explain how each particular option will be configured:
b- configures for both configurations
l- configures only for a local configuration
g- configures only for a global configuration
i- if a global configuration is applied, an option isn't used in local configuration; otherwise, uses in local configuration
The basics configuration configures the following options
git config options:
During the configuration, you will be asked to provide appropriate values.
The standards configuration configures a set of the
git config options which both handle
OS-specific configurations and add specific options for the correct execution of Elegant Git
commands. It consists of
|enables commit messages starting from
fixremoves whitespaces when applying a patch
truekeeps remote-tracking references up-to-date
falsedoes not remove tags until you specify it explicitly (
git fetch --tags)
i) to either
inputon MacOS/Linux or
trueon Windows solves issues with line endings
osxkeychainon MacOS configures default credentials storage
trueidentifies that Elegant Git global configuration is applied
In order to make Elegant Git command like a native Git command, each Elegant Git command will have
an appropriate alias like
git elegant save-work will become
git save-work. This should
significantly improve user experience.
The configuration is a call of
git config "alias.<command>" "elegant <command>" (
i) for each Elegant
This configuration aims to say Git how to sign commits, tags, and other objects you create. It starts after all other configurations. In the beginning, all available signing keys will be shown. Then, you need to choose the key that will be used to make signatures. If the key is provided, the configuration triggers, otherwise, it does not apply. The signing configuration consists of
l) to a provided value
l) to a full path of
For now, only
gpg is supported. If you need other tools, please create a new feature request.