There are situations where you need to work with a GIT repository using HTTPS protocol and cannot permanently store user credentials in the local configuration. One solution is to store credentials in a temporary cache (username and password) for a limited time.
The git-credential-cache
option is what we will use to temporarily store passwords in memory.
See also how to define the author of a GIT command for a single command execution in this Set the author for a specific command, or How to configure username and email by project with GIT.
The command: git-credential-cache
git config credential.helper 'cache [<options>]'
Description
This command stores credentials in memory for use for a certain time of the GIT program.
Credentials are never stored on disk, being forgotten after a configurable limit time.
The cache can be accessed through a Unix domain socket, restricted to the current user by file system permissions.
Options
Some options are available to use the command:
--timeout
Specifies the time in seconds to store credentials in cache. The default value is 900 equivalent to 15 minutes.
--socket
Use the socket option specifying path (disk path) to contact a cache daemon running, or start a new cache daemon if it has not been started.
The standard is $XDG_CACHE_HOME/git/credential/socket
, unless ~/.git-credential-cache/
exist, if there is the way ~/.git-credential-cache/socket
It is used in place.
If your personal directory is in a network-mounted file system, it may need to change to a local file system.
When using this option you must specify an absolute path.
Controlling daemon
If you wish daemon close before the setted time, thus forgetting all cache credentials before your time limit, you can use an output command:
git credential-cache exit
Examples
The goal of using this helper is to decrease the amount of times you will need to enter user and password in a short time space, for example, when making deploy adjustments to a test server.
Check out the following use example
git config credential.helper cache
git push https://gitlab.com/palavrasagrada.git
Username: <Your username>;
Password: <your password>;
# After 5 minutes
git push https://gitlab.com/palavrasagrada.git
# The cached credentials will be used automatically within the deadline
In this example of the site update Bíblia Palavra Sagrada, The developer called the helper credential.helper cache
before performing the first push.
In the first interaction with the repository, GIT asks the user and password to be provided, the developer normally executes them.
After 5 minutes of work in the source code, a new push will be performed by the developer, but this time the credentials stored in cache are used without having to type user and password again.
This will happen for a standard 15 minutes of Helper.
To increase the limit time it is possible to use the --timeout
option providing the seconds:
git config credential.helper 'cache --timeout=3600'
In the example above the set time will be 1 hour.
Comments